선풍기 사망설 편집하기
누리위키, 온 누리의 백과사전
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 | 당신의 편집 | ||
4번째 줄: | 4번째 줄: | ||
'''선풍기 사망설'''({{llang|en|fan death}}), 또는 '''선풍기 괴담'''은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. | '''선풍기 사망설'''({{llang|en|fan death}}), 또는 '''선풍기 괴담'''은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. | ||
− | + | 시발,병신,또라이 | |
− | |||
− | |||
− | |||
== 가설 == | == 가설 == | ||
18번째 줄: | 15번째 줄: | ||
=== 질식 === | === 질식 === | ||
− | |||
− | + | 무조건 죽으므로 선풍기절대로 쓰면 안돼요 | |
− | + | == 자살법 == | |
− | + | 선풍기를 틀고자면 자살할 수 있다. | |
− | + | 당신도 자살하기를 권장한다. | |
== 매스컴 보도 == | == 매스컴 보도 == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 이런 빙신ㅋㅋ 빙신ㅋㅋ | |
− | |||
== 외국의 반응 == | == 외국의 반응 == | ||
− | |||
− | |||
− | |||
− | + | 시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시 | |
== 주석 == | == 주석 == |