실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패실패