²¤ÅÉ ·¢±íÓÚ 2009-1-25 19:56

:*P :*P :*P

vivi07 ·¢±íÓÚ 2009-1-25 19:57

×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!

keane_w ·¢±íÓÚ 2009-1-25 19:57

ÎÒÐÕÕÔ,ÎÒ½ÐÕÔ¹«Ã÷,´ó¼ÒºÃѽ

gxb1128 ·¢±íÓÚ 2009-1-25 19:57

ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ

²¤ÅÉ ·¢±íÓÚ 2009-1-25 19:57

:*P :*P :*P

yylgt ·¢±íÓÚ 2009-1-25 19:57

18651

wzq_009 ·¢±íÓÚ 2009-1-25 19:57

ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ

ľɶľɶ ·¢±íÓÚ 2009-1-25 19:57

ÎÒÔÚµÈ2009Ò³:*29*:

Îò¿Õ1975 ·¢±íÓÚ 2009-1-25 19:58

°ïןÇÂ¥
È罨Æß¼¶¸¡ÍÀ
¹¦µÂÎÞÁ¿
ÉÆÔÕ ÉÆÔÕ

÷´¨ÍÝ×Ó ·¢±íÓÚ 2009-1-25 19:58

swm13 ·¢±íÓÚ 2009-1-25 19:58

×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!

leonids_yu ·¢±íÓÚ 2009-1-25 19:58

×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!

fly88 ·¢±íÓÚ 2009-1-25 19:58

×£´ó¼ÒÅ£Äê´ó¼ª£¡£¡£¡

²¤ÅÉ ·¢±íÓÚ 2009-1-25 19:58

:*P :*P :*P

Îò¿Õ1975 ·¢±íÓÚ 2009-1-25 19:58

°ïןÇÂ¥
È罨Æß¼¶¸¡ÍÀ
¹¦µÂÎÞÁ¿
ÉÆÔÕ ÉÆÔÕ

keane_w ·¢±íÓÚ 2009-1-25 19:58

ÎÒÐÕÕÔ,ÎÒ½ÐÕÔ¹«Ã÷,´ó¼ÒºÃѽ

²¤ÅÉ ·¢±íÓÚ 2009-1-25 19:59

:*P :*P :*P

keane_w ·¢±íÓÚ 2009-1-25 19:59

ÎÒÐÕÕÔ,ÎÒ½ÐÕÔ¹«Ã÷,´ó¼ÒºÃѽ

wzq_009 ·¢±íÓÚ 2009-1-25 19:59

ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ

keane_w ·¢±íÓÚ 2009-1-25 20:00

ÎÒÐÕÕÔ,ÎÒ½ÐÕÔ¹«Ã÷,´ó¼ÒºÃѽ
Ò³: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 [1513] 1514 1515 1516 1517 1518 1519 1520 1521 1522
²é¿´ÍêÕû°æ±¾: MACDÂÛ̳¡¼ÊµÕ½¿´Å̽»Á÷¡½½ðÅ£Äê´º½ÚÇÀÂ¥¿ñ»¶Ìû¡££¨µÚÒ»¸ßÂ¥117888¥֮ǰÒѼӷ֣©¹Ø±Õ