선풍기 사망설 편집하기

누리위키, 온 누리의 백과사전

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
4번째 줄: 4번째 줄:
 
'''선풍기 사망설'''({{llang|en|fan death}}), 또는 '''선풍기 괴담'''은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다.  
 
'''선풍기 사망설'''({{llang|en|fan death}}), 또는 '''선풍기 괴담'''은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다.  
  
== 기원 ==
+
시발,병신,또라이
이 도시전설이 생긴 까닭은 분명치 않지만, 선풍기가 한국에 처음 도입된 1920-1930년대부터 이 '''신문물'''이 구역질, 질식, 안면 마비를 일으킨다는 공포는 존재해 왔다.
 
 
 
1970년대 [[오일쇼크]] 당시 일반가정의 [[에너지 절약]]을 유도하기 위해 한국 정부에서 지어낸 [[프로파간다]]의 일종이라는 [[음모론]]도 있다. 실제로 선풍기로 인한 사망이 보고된 것도 1970년대 부터의 일이다.
 
  
 
== 가설 ==
 
== 가설 ==
18번째 줄: 15번째 줄:
  
 
=== 질식 ===
 
=== 질식 ===
어떤 사람들은 선풍기 사망은 [[이산화탄소]] 중독으로 인한 것이라고 주장한다. 사람은 [[호흡]]을 하는 과정에서 상대적으로 [[산소]](O<sub>2</sub>) 농도가 높은 공기를 들이마시고, [[이산화탄소]](CO<sub>2</sub>)농도가 높은 공기를 내쉰다. 그런데 완전히 밀폐된 방에서는 바로 이 이산화탄소가 지속적으로 축적된다. 이산화탄소는 무색, 무취의 기체로서 일반적인 공기에 비해 1.5배 더 무겁기 때문에 아래로 가라앉는 성질이 있다. 따라서 침대 위에서 잘 때보다 한국식으로 바닥에 요를 깔고 잘 때 더 위험할 수 있다.
 
  
[[미국]] 주간지 <[[시카고 리더]]>에서 운영하는 웹사이트 <The Straight Dope>에 따르면, (창문이나 문을 모두 닫았다 하더라도) 방을 완벽하게 밀폐시키는 것은 거의 불가능하며, 오히려 선풍기는 이산화탄소를 공기와 섞어 주는 역할을 하므로 질식은 선풍기 사망설의 원인이라고 볼 수 없다고 한다.
+
무조건 죽으므로 선풍기절대로 쓰면 안돼요
  
선풍기가 산소를 빨아들이고 이산화탄소를 내뿜는다는 '선풍기 호흡설', 산소분자를 쪼개 산소 원자로 만들어 버린다는 '선풍기 분자 절삭설' 등도 있지만 이쯤 되면 유머의 영역이다.
+
== 자살법 ==
  
== 또 다른 위험성 ==
+
선풍기를 틀고자면 자살할 수 있다.
[[미국 환경보호청]](EPA)에서는 선풍기 사망설에 대해 경고하지는 않았지만, 아주 더운 조건(기온 37℃ 이상)에서는 환기되지 않은 밀폐된 방에서 선풍기를 사용하지 않을 것을 장려하고 있다. 이런 조건에서는 선풍기의 바람이 오히려 체온보다 온도가 높으므로 신체의 [[열 스트레스]]를 증가시키며 결과적으로 [[일사병]]이나 다른 해로운 상태가 유발될 수 있다.  
+
당신도 자살하기를 권장한다.
  
 
== 매스컴 보도 ==
 
== 매스컴 보도 ==
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.
 
 
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)<ref>[http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=102&oid=034&aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일</ref>}}
 
 
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다.
 
  
=== 정부 ===
+
이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 이런 빙신ㅋㅋ 빙신ㅋㅋ
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다.
 
  
 
== 외국의 반응 ==
 
== 외국의 반응 ==
외국에서는 한국의 선풍기 사망설을 [[미신]]으로 여겨 조롱하고 있다. 다음은 이와 관련된 패러디 영상이다.
 
 
{{#ev:youtube|oms2grI1TC0}}
 
  
...그랬다는 훈훈한 이야기이다.
+
시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시
  
 
== 주석 ==
 
== 주석 ==

누리위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 누리위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)