![]() |
#41 |
in need of banned aid
Join Date: Mar 2001
Location: over the rainb... uh... nevermind
Posts: 2,714
|
llock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock ock
|
![]() |
![]() |
#42 |
Forum King
Join Date: Aug 2002
Location: The Netherlands
Posts: 4,082
|
lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lo |