<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://nuriwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=211.182.230.7</id>
	<title>누리위키 - 사용자 기여 [ko]</title>
	<link rel="self" type="application/atom+xml" href="https://nuriwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=211.182.230.7"/>
	<link rel="alternate" type="text/html" href="https://nuriwiki.net/w/%ED%8A%B9%EC%88%98:%EA%B8%B0%EC%97%AC/211.182.230.7"/>
	<updated>2026-06-04T05:01:55Z</updated>
	<subtitle>사용자 기여</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33385</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33385"/>
		<updated>2023-02-06T02:59:16Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: /* 매스컴 보도 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
시발,병신,또라이&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
&lt;br /&gt;
무조건 죽으므로 선풍기절대로 쓰면 안돼요&lt;br /&gt;
&lt;br /&gt;
== 자살법 ==&lt;br /&gt;
&lt;br /&gt;
선풍기를 틀고자면 자살할 수 있다.&lt;br /&gt;
당신도 자살하기를 권장한다.&lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
&lt;br /&gt;
이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 이런 빙신ㅋㅋ 빙신ㅋㅋ&lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
&lt;br /&gt;
시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시&lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33384</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33384"/>
		<updated>2023-02-06T02:56:23Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: /* 외국의 반응 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
시발,병신,또라이&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
&lt;br /&gt;
무조건 죽으므로 선풍기절대로 쓰면 안돼요&lt;br /&gt;
&lt;br /&gt;
== 자살법 ==&lt;br /&gt;
&lt;br /&gt;
선풍기를 틀고자면 자살할 수 있다.&lt;br /&gt;
당신도 자살하기를 권장한다.&lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.&lt;br /&gt;
&lt;br /&gt;
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)&amp;lt;ref&amp;gt;[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=102&amp;amp;oid=034&amp;amp;aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다. &lt;br /&gt;
&lt;br /&gt;
=== 정부 ===&lt;br /&gt;
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다. &lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
&lt;br /&gt;
시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시&lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33383</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33383"/>
		<updated>2023-02-06T02:50:49Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: 욕♡♡&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
시발,병신,또라이&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
&lt;br /&gt;
무조건 죽으므로 선풍기절대로 쓰면 안돼요&lt;br /&gt;
&lt;br /&gt;
== 자살법 ==&lt;br /&gt;
&lt;br /&gt;
선풍기를 틀고자면 자살할 수 있다.&lt;br /&gt;
당신도 자살하기를 권장한다.&lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.&lt;br /&gt;
&lt;br /&gt;
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)&amp;lt;ref&amp;gt;[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=102&amp;amp;oid=034&amp;amp;aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다. &lt;br /&gt;
&lt;br /&gt;
=== 정부 ===&lt;br /&gt;
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다. &lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
외국에서는 한국의 선풍기 사망설을 [[미신]]으로 여겨 조롱하고 있다. 다음은 이와 관련된 패러디 영상이다. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|oms2grI1TC0}}&lt;br /&gt;
&lt;br /&gt;
...그랬다는 훈훈한 이야기이다. &lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33382</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33382"/>
		<updated>2023-02-06T02:49:37Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: /* 또 다른 위험성 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
== 기원 ==&lt;br /&gt;
이 도시전설이 생긴 까닭은 분명치 않지만, 선풍기가 한국에 처음 도입된 1920-1930년대부터 이 &#039;&#039;&#039;신문물&#039;&#039;&#039;이 구역질, 질식, 안면 마비를 일으킨다는 공포는 존재해 왔다. &lt;br /&gt;
&lt;br /&gt;
1970년대 [[오일쇼크]] 당시 일반가정의 [[에너지 절약]]을 유도하기 위해 한국 정부에서 지어낸 [[프로파간다]]의 일종이라는 [[음모론]]도 있다. 실제로 선풍기로 인한 사망이 보고된 것도 1970년대 부터의 일이다.&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
&lt;br /&gt;
무조건 죽으므로 선풍기절대로 쓰면 안돼요&lt;br /&gt;
&lt;br /&gt;
== 자살법 ==&lt;br /&gt;
&lt;br /&gt;
선풍기를 틀고자면 자살할 수 있다.&lt;br /&gt;
당신도 자살하기를 권장한다.&lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.&lt;br /&gt;
&lt;br /&gt;
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)&amp;lt;ref&amp;gt;[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=102&amp;amp;oid=034&amp;amp;aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다. &lt;br /&gt;
&lt;br /&gt;
=== 정부 ===&lt;br /&gt;
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다. &lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
외국에서는 한국의 선풍기 사망설을 [[미신]]으로 여겨 조롱하고 있다. 다음은 이와 관련된 패러디 영상이다. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|oms2grI1TC0}}&lt;br /&gt;
&lt;br /&gt;
...그랬다는 훈훈한 이야기이다. &lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33381</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33381"/>
		<updated>2023-02-06T02:48:00Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: /* 질식 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
== 기원 ==&lt;br /&gt;
이 도시전설이 생긴 까닭은 분명치 않지만, 선풍기가 한국에 처음 도입된 1920-1930년대부터 이 &#039;&#039;&#039;신문물&#039;&#039;&#039;이 구역질, 질식, 안면 마비를 일으킨다는 공포는 존재해 왔다. &lt;br /&gt;
&lt;br /&gt;
1970년대 [[오일쇼크]] 당시 일반가정의 [[에너지 절약]]을 유도하기 위해 한국 정부에서 지어낸 [[프로파간다]]의 일종이라는 [[음모론]]도 있다. 실제로 선풍기로 인한 사망이 보고된 것도 1970년대 부터의 일이다.&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
&lt;br /&gt;
무조건 죽으므로 선풍기절대로 쓰면 안돼요&lt;br /&gt;
&lt;br /&gt;
== 또 다른 위험성 ==&lt;br /&gt;
[[미국 환경보호청]](EPA)에서는 선풍기 사망설에 대해 경고하지는 않았지만, 아주 더운 조건(기온 37℃ 이상)에서는 환기되지 않은 밀폐된 방에서 선풍기를 사용하지 않을 것을 장려하고 있다. 이런 조건에서는 선풍기의 바람이 오히려 체온보다 온도가 높으므로 신체의 [[열 스트레스]]를 증가시키며 결과적으로 [[일사병]]이나 다른 해로운 상태가 유발될 수 있다. &lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.&lt;br /&gt;
&lt;br /&gt;
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)&amp;lt;ref&amp;gt;[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=102&amp;amp;oid=034&amp;amp;aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다. &lt;br /&gt;
&lt;br /&gt;
=== 정부 ===&lt;br /&gt;
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다. &lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
외국에서는 한국의 선풍기 사망설을 [[미신]]으로 여겨 조롱하고 있다. 다음은 이와 관련된 패러디 영상이다. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|oms2grI1TC0}}&lt;br /&gt;
&lt;br /&gt;
...그랬다는 훈훈한 이야기이다. &lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33380</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33380"/>
		<updated>2023-02-06T02:46:48Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: /* 질식 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
== 기원 ==&lt;br /&gt;
이 도시전설이 생긴 까닭은 분명치 않지만, 선풍기가 한국에 처음 도입된 1920-1930년대부터 이 &#039;&#039;&#039;신문물&#039;&#039;&#039;이 구역질, 질식, 안면 마비를 일으킨다는 공포는 존재해 왔다. &lt;br /&gt;
&lt;br /&gt;
1970년대 [[오일쇼크]] 당시 일반가정의 [[에너지 절약]]을 유도하기 위해 한국 정부에서 지어낸 [[프로파간다]]의 일종이라는 [[음모론]]도 있다. 실제로 선풍기로 인한 사망이 보고된 것도 1970년대 부터의 일이다.&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
&lt;br /&gt;
== 또 다른 위험성 ==&lt;br /&gt;
[[미국 환경보호청]](EPA)에서는 선풍기 사망설에 대해 경고하지는 않았지만, 아주 더운 조건(기온 37℃ 이상)에서는 환기되지 않은 밀폐된 방에서 선풍기를 사용하지 않을 것을 장려하고 있다. 이런 조건에서는 선풍기의 바람이 오히려 체온보다 온도가 높으므로 신체의 [[열 스트레스]]를 증가시키며 결과적으로 [[일사병]]이나 다른 해로운 상태가 유발될 수 있다. &lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.&lt;br /&gt;
&lt;br /&gt;
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)&amp;lt;ref&amp;gt;[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=102&amp;amp;oid=034&amp;amp;aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다. &lt;br /&gt;
&lt;br /&gt;
=== 정부 ===&lt;br /&gt;
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다. &lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
외국에서는 한국의 선풍기 사망설을 [[미신]]으로 여겨 조롱하고 있다. 다음은 이와 관련된 패러디 영상이다. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|oms2grI1TC0}}&lt;br /&gt;
&lt;br /&gt;
...그랬다는 훈훈한 이야기이다. &lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
	<entry>
		<id>https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33379</id>
		<title>선풍기 사망설</title>
		<link rel="alternate" type="text/html" href="https://nuriwiki.net/index.php?title=%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D%EC%84%A4&amp;diff=33379"/>
		<updated>2023-02-06T02:46:06Z</updated>

		<summary type="html">&lt;p&gt;211.182.230.7: /* 질식 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[파일:선풍기.jpg|300픽셀|섬네일|&amp;lt;del&amp;gt;힘을 봉인 당한 선풍기&amp;lt;/del&amp;gt;세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.]]&lt;br /&gt;
[[파일:선풍기사망설.jpg|300픽셀|섬네일|선풍기 사망을 경고하고 있는 선풍기 사용설명서]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선풍기 사망설&#039;&#039;&#039;({{llang|en|fan death}}), 또는 &#039;&#039;&#039;선풍기 괴담&#039;&#039;&#039;은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 [[도시전설]]이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, [[대한민국]]에서는 널리 받아들여지는 도시괴담으로 남아 있다. &lt;br /&gt;
&lt;br /&gt;
== 기원 ==&lt;br /&gt;
이 도시전설이 생긴 까닭은 분명치 않지만, 선풍기가 한국에 처음 도입된 1920-1930년대부터 이 &#039;&#039;&#039;신문물&#039;&#039;&#039;이 구역질, 질식, 안면 마비를 일으킨다는 공포는 존재해 왔다. &lt;br /&gt;
&lt;br /&gt;
1970년대 [[오일쇼크]] 당시 일반가정의 [[에너지 절약]]을 유도하기 위해 한국 정부에서 지어낸 [[프로파간다]]의 일종이라는 [[음모론]]도 있다. 실제로 선풍기로 인한 사망이 보고된 것도 1970년대 부터의 일이다.&lt;br /&gt;
&lt;br /&gt;
== 가설 ==&lt;br /&gt;
선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.&lt;br /&gt;
&lt;br /&gt;
=== 저체온증 ===&lt;br /&gt;
저체온증은 인간의 체온조절능력이 상실되어 [[체온]]이 비정상적으로 낮아지는 것을 의미한다. 밤에는 [[신진대사]]가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다. &lt;br /&gt;
&lt;br /&gt;
하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 [[마찰]]열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 [[대류]]를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 [[땀]]이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 [[체감온도]]가 낮아진 것이라는 점을 염두에 두도록 하자. &lt;br /&gt;
&lt;br /&gt;
=== 질식 ===&lt;br /&gt;
어떤 사람들은 선풍기 사망은 &lt;br /&gt;
[이산화탄소] 중독으로 인한 것이라고 주장한다. 사람은 [[호흡]]을 하는 과정에서 상대적으로 [[산소]](O&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;) 농도가 높은 공기를 들이마시고, [[이산화탄소]](CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;)농도가 높은 공기를 내쉰다. 그런데 완전히 밀폐된 방에서는 바로 이 이산화탄소가 지속적으로 축적된다. 이산화탄소는 무색, 무취의 기체로서 일반적인 공기에 비해 1.5배 더 무겁기 때문에 아래로 가라앉는 성질이 있다. 따라서 침대 위에서 잘 때보다 한국식으로 바닥에 요를 깔고 잘 때 더 위험할 수 있다. &lt;br /&gt;
&lt;br /&gt;
[[미국]] 주간지 &amp;lt;[[시카고 리더]]&amp;gt;에서 운영하는 웹사이트 &amp;lt;The Straight Dope&amp;gt;에 따르면, (창문이나 문을 모두 닫았다 하더라도) 방을 완벽하게 밀폐시키는 것은 거의 불가능하며, 오히려 선풍기는 이산화탄소를 공기와 섞어 주는 역할을 하므로 질식은 선풍기 사망설의 원인이라고 볼 수 없다고 한다.&lt;br /&gt;
&lt;br /&gt;
선풍기가 산소를 빨아들이고 이산화탄소를 내뿜는다는 &#039;선풍기 호흡설&#039;, 산소분자를 쪼개 산소 원자로 만들어 버린다는 &#039;선풍기 분자 절삭설&#039; 등도 있지만 이쯤 되면 유머의 영역이다.&lt;br /&gt;
&lt;br /&gt;
== 또 다른 위험성 ==&lt;br /&gt;
[[미국 환경보호청]](EPA)에서는 선풍기 사망설에 대해 경고하지는 않았지만, 아주 더운 조건(기온 37℃ 이상)에서는 환기되지 않은 밀폐된 방에서 선풍기를 사용하지 않을 것을 장려하고 있다. 이런 조건에서는 선풍기의 바람이 오히려 체온보다 온도가 높으므로 신체의 [[열 스트레스]]를 증가시키며 결과적으로 [[일사병]]이나 다른 해로운 상태가 유발될 수 있다. &lt;br /&gt;
&lt;br /&gt;
== 매스컴 보도 ==&lt;br /&gt;
2000년대까지, 해마다 여름철이 되면 한국의 주요 언론에서는 선풍기 사망 관련 기사를 실곤 했다. 다음은 2005년 6월 8일 [[YTN]]에 보도된 [[뉴스]] 보도의 일부이다.&lt;br /&gt;
&lt;br /&gt;
{{대사|(전략)...오늘 오전 6시쯤 광주시 두암동 모 원룸에서 22살 손 모 씨가 숨져 있는 것을 손씨의 형이 발견해 경찰에 신고했습니다. 경찰은 손 씨가 평소 건강했다는 유족들의 말로 미루어 밀폐된 방안에서 선풍기를 켜 놓고 잠을 자다 체온이 떨어져 숨진 것이 아닌가 보고 정확한 사망원인을 조사하고 있습니다...(후략)&amp;lt;ref&amp;gt;[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=102&amp;amp;oid=034&amp;amp;aid=0000209319 선풍기 켜놓고 자다 사망 잇따라], YTN, 2005년 6월 8일&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
전형적인 선풍기 사망 사건을 보도한 이 기사에서 알 수 있듯이, 선풍기가 틀어진 채 사망한 사람이 나오면 그 사망원인으로 (과학적인 근거는 없음에도 불구하고) 선풍기가 가장 먼저 지목되곤 했다. 하지만 2010년대 들어서부터는 한국의 선풍기 사망설이 외국인들의 조롱거리가 되자 이런 류의 기사는 거의 나오지 않고 있다. &lt;br /&gt;
&lt;br /&gt;
=== 정부 ===&lt;br /&gt;
정부 출자기관인 [[한국소비자원]]에서는 2006년 선풍기로 인한 [[질식]]을 5대 여름철 사고 중 하나라고 경고한 바 있다. 당시 소비자원에서는 홍보문을 통해 질식사를 방지하기 위해 선풍기를 밤새 사용할 때에는 타이머를 맞춰 두고 방문을 열어 둘 것을 소비자에게 당부하였다. &lt;br /&gt;
&lt;br /&gt;
== 외국의 반응 ==&lt;br /&gt;
외국에서는 한국의 선풍기 사망설을 [[미신]]으로 여겨 조롱하고 있다. 다음은 이와 관련된 패러디 영상이다. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|oms2grI1TC0}}&lt;br /&gt;
&lt;br /&gt;
...그랬다는 훈훈한 이야기이다. &lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{번역된 문서|en|Fan_death}}&lt;br /&gt;
&lt;br /&gt;
{{도시전설}}&lt;br /&gt;
{{유사과학}}&lt;br /&gt;
&lt;br /&gt;
[[분류:도시전설]]&lt;br /&gt;
[[분류:의사과학]]&lt;/div&gt;</summary>
		<author><name>211.182.230.7</name></author>
	</entry>
</feed>