Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Libro - J.fast - El Lenguaje Del Cuerpo
Libro - J.fast - El Lenguaje Del Cuerpo
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c c
c
c
c
c
c c
c c
c c c
c c
c c
c
c
ccc
cc c
ccc
ccc
c
ccc
c c
cc
c
c
c
c
ccc
c
c c
ccc
c
c c
c c
c
c c
cc c
c
c
c c
ccc
ccc
c c
c
cc
?
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c c
c
c c c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c c
c
c
c
c c c
c
c
c c
c c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c c c
c
c
c
c
c c c
c c c
c
c c
c c
c
c c
c c
c c c
c
c
c
c c
c
c c c
c c
c
c c
c c c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c c c
c
c
c c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c c
c
c c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c c
c
c c c
c
c c
c c
c
c c c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c c
c
c
c c
c
c
c c
c c
c
c c
c
c
c c
c
c c c
c
c
c c
c
c
c c
c c c
c
c c
c
c
c
c c c
c c c
c
c
c c
c
c c c
c
c c
c c
c
c
c
c
c
c c
c c
c
c
c c c
c
c c
c c
c c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c
c
c
c
c c c
c c
c
c
c
c c
c
c
c
c
c c
c
c c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c c
c c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c c
c c
c
c c
c c
c
c
c
c
c
c c
c c c
c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c c c
c
c
c
c c c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c c
c c
c
c c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c c
c
c c c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
cc
c
c
c
c c
c
c
c c
c
c
c c c
c c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c c
c
c c c
c c c
c c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c
c
c
c c
c c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c c c
c
c
c c
c
c
c c c
c
c
c c
c
c
c
c
c c
c
c c
c c c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c c c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c c c
c
c
c
c
c c
c
c c c
c
c c
c
c
c
c
c c
c c
c c c
c c
c
c
c c
c c
c
c
c c
c
c
c c
c
c c
c
c c
c
c c
c
c c
c c c
c c c c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c c
c c c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c c c c c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c c
c
c c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c c
c c
c
c
c c
c
c
c c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c c
c c
c
c
c c
c
c
c
c c c
c
c
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c c c
c c
c
c c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c
c c
c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c c
c c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c c c
c c
c
c
c c
c c
c
c c
c
c
c c
c c c
c c c
c
c
c
c c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c c
c
c c
c c
c
c
c c
c
c c
c
c c
c c
c
c c
c c
c
c
c
c
c
c c
c c
c c c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c c
c c
c
c
c c c
c c
c c c
c
c c
c
c c
c
c c
c
c c
c c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c c
c
c
c c c
c
c c
c
c
c c
c c
c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c c
c c c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c c
c
c c c
c
c c
c
c
c c
c
c c c
c
c c
c c
c c
c c
c c c
c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c c c
c
c c c
c
c
c
c c
c
c
c
c c
c c
c
c c
c
c c
c c
c
c c
c
c
c c c c
c c
c c
c c
c
c c
c c c c
c
c
c
c c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c c
c c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c c
c c
c c
c c
c
c
c c
c c
c
c c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c c c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c
c
c c c c
c c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c c c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c c
c
c c
c
c
c c
c c c
c
c c
c
c
c c c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c c c
c c
c c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c c
c
c c
c c
c c
c
c c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c c c
c c
c c c
c c
c c
c
c
c
c c
c
c
c c
c c
c cc
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c c
c c c
c c
c c c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c c c c
c c
c
c c
c
c
c
c
c
c c
c
c c
c
c c c
c
c
c
c
c
c
c
c c
c c c c
c
c
c
c c
c
c c
c
c
c c
c
c c c
c
c
c
c c
c
c c
c
c c c
c
c
c
c
c
c c c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c c c
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c c c
c
c
c
c
c
c c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c c
c
c
c c c
c c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c c
c c
c
c
c
c
c
c c
c c
c
cc
c
c c c
c c c
c
c
c
c
c
c c
c
c c c
c c c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c
c c
c
c c
c c
c
c
c c c
c
c c c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c c c
c c
c
c
c c
c
c c c c c
c
c
c
c c c
c c c
c c
c c c
c
c c
c
c c c
c
c
c
c
c c
c
c c
c c c
c
c
c
c c
c
c c
c
c c
c c
c
c c c
c c c
c
c c
c c c
c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c c
c
c
c c
c
c c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
cc
V
c
c
c
c
c c
c c
c c c
c c c
c c c
c c
c c
c
c
c
c
c
c c
c
c
c c
c
c c c
c c c
c
c
c c
c c c
c c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c c c
c c
c c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c c
c c
c
c
c
c
c
c c c
c c c
c
c
c c
c
c
c c
c c
c c
c
c
c
c c c
c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c c
c c c c
c
c
c
c
c c c c
c
c
c
c
c c
c c
c c
c
c
c c
c
c c
c
c c
c
c c
c
c
c c
c c
c c c
c
c c
c
c c
c
c c c c
c
c
c c
c
c
c c
c
c
c c c
c
c
c
c c
c
c c c
c c
c
c c c
c c
c
c c
c
c
c
c
c c c
c c c
c c c
c
c
c
c
c c
c
c
c
c
c
c c
c c c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c c
c
c c c
c
c
c
c
c
c c
c c c
c c c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c c c
c
c
c
c c
c c
c
c c
c
c
c c
c
c c
c
c c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
cc
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c c
c
c c
c
c c c
c
c c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c c
c c
c c
c c c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c c
c c
c
c c
c cc c
c
c c
c
c c c
c
c
c c
c c
c c
c
c
c c
c c
c c c
c c c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c
c c
c c
c
c c c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c c c
c
c c
c c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c c c
c c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c c
c c
c
c c c
c c
c c
c
c
c c c
c
c c
c c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c
c
c c
c c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c c c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c c
c
cc
c
c
c c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c c
c c
c
c
c
c
c c
c c c
c
c
c
c c
c
c c c
c c c
c c c
c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c c
c c c
c c
c
c
c c
c
c
c c c
c
c
c c c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c c
c
c c
c
c c c
c c c c
c c c
c c
c c c
c
c c c c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c c
c
c
c
c c
c
c
c c
c c c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c
c
c
c c c
c c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
cc
c
c
c
c
c
c
c
c c
c
c
c c
c
c c cc cc
c c c c
c c
c
c c
c c
c
c
c
c
c c c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
cc
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c cc cc
c c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c c
c c
c
c
c c
c
c
c
c
c c c
c
c c c
c c
c
c c c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c c c
c
c
c
c
c
c c c
c
c
c c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c c c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c c
c
c c c c
c c
c c
c
c
c
c c
c c
c c
c
c c
c c c c
c
c c
c c
c
c c c
c
c
c c
c
c
c c
c c
c
c
c c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
cc
c
c c c
c c c
c
c
c c
c c c
c
c
c c c
c
c c c
c
c
c
c c c
c
c
c c
c
c
c c
c
c
c c
c c
c
c c c
c
c
c
c
c
c c
c
c c
c c c
c c
c c
c c
c c c
c c
c c c
c c
c
c c
c
c
c
c c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c c c
c
c c
c c
c
c
c c c
c
c
c c
c c
c
c c
c
c c
c
c c c
c c
c
c
c c c
c
c
c
c
c c
c
c
c c
c
c c
c c
c c c
c c
c c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c c c
c c
c c c
c
c
c
c c
c
c c c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c c
c c c
c c
c
c cc
c c c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c c
c c c
c c c
c c
c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c c
c
c c
c
c
c c c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c
c c
c c
c
c c c
c c
c
c c
c c c
c
c
c c
c
c c
c c
c
c
c c c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c c
c
c c
c
c
c c c
c
c c
c
c
c
c c c
c
c
c
c
c c
c c
c
c
c c
c c
c
c c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c c
c
c
c
c
c c
c c c
c c
c
c
c
c c c
c c
c c
c c
c
c c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c c c
c c
c c c c
c
c
c c c
c c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c
c c
c
c c c
c
c c
c
c c
c
c
c
c
c c c
c
c c
c
c c
c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c c
c
c
c c
c c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c c
c c
c c
c c
c
c
c c
c
c c c
c
c c c
c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c c c
c
c c
c
c c
c
c c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c c c
c c
c
c
c
c c
c c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
cc
c
c c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c c
c
c c
c c
c c
c c
c c
c
c
c
c
c c
c c
c cc
c c
c
c c
c c
c
c c
c c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c c
c c c c
c
c
c c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c c c c
c
c
c c
c
c
c
c c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c c c c
c
c
c
c c
c
c
c c c
c
c
c c
c
c c
c c c
c
c
c
c c
c
c
c c c
c
c
c c
c c c
c c
c
c c c c
c c
c
c c c
c c
c
c
c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c c
c c c
c c
c c
c c
c c c
c
c c
c c c c c
c c c c
c
c
c c
c c c
c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c c c
c c c c
c
c
c
c
c
c c
c c c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c c
c c
c c c
c
c c
c
c c
c
c c
c c
c c c c
c
c
c
c c c
c c
c c
c
c
c c
c c c
c
c c c
c
c
c
c c
c
c
c
c c
c
c c c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c c c c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c c c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c
c
c
c
c c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c c
c
c
c
c c
c c
c
c c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c
c c
c
c
c c
c
c c
c c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
cc
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c c c
c c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c c
c
c c c
c c
c c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c c
c c c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c c
c c c
c
c c
c c c
c c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c c
c
c c
c
c c
c c
c
c c c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c c
c
c
c
c c c
c
c
c
c
c c
c c
c c
c c c
c c
c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c c
c c
c c c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c c
c c
c c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c c
c
c
c
c
c c c
c c c
c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c c
c
c c
c c
c c c c
c
c
c c
c
c
c c
c
c
c
c c c
c c c
c
c c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c c
c
c
c
c
c c
c
c c
c
c
c
c c c
c
c c c
c c
c c
c
c c c
c
c c c
c
c c
c
c
c
c
c c c
c c
c c c
c c c
c
c c
c
c c
c
c
c
c c
c c
c c
c
c
c c
c
c c
c
c
c c
c
c
c
c c
c
c c c
c
c
c
c c
c
c c
c
c
c
c
c c
c c c
c
c
c c
c c
c c
c c c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c c
c
c
c
c
c c c
c
c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c c c
c
c c
c
c c c
c
c
c
c c
c
c c
c
c
c c c
c
c
c
c
c
cc
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c c c
c c
c c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c c
c c
c
c
c
c c
c
c
c c
c c
c c c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c c c
c
c c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c c c
c c c
c
c
c
c
c c c
c
c c c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c c c
c c
c c
c
c c c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c c c
c c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c c
c c c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c
c
c c c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c c
c
c
c c c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c c
c c c
c c c
c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c
c
c c
c
c
c c
c c c
c c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c c c
c
c c
c
c c
c
c
c
c c
c c
c
c c
c c
c c
c
c c
c
c
c
c c
c c
c c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c c
c c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c c c
c c
c c
c c
c
c c c c c c
c c
c
c
c c
cc c c
c c c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c c
c
c c
c c
c
c
c c
c c
c c c
c
c
c c
c
c c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c c
c
c
c c
c c
c c c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c c c
c c
c
c
c c c
c
c
c c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c c
c c c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c cc cc c
c
c
c
c c
c
c
c c
c c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c c c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c c
c
c c c
c
c
c
c c
c
c c
c c
c
c c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c c c
c c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c c c
c c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c
c c
c
c
c c
c c
c
c
c c c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c c
c
c
c
c
c c
c c c
c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c
c c
c c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c c c
c
c c c
c c
c c
c c
c c
c
c c
c c
c c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c c
c c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
cc
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c c c
c
c
c
c c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c c
c c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c c c
c
c
c c
c
c
c c
c
c
c c c
c
c c
c
c c c c
c c c
c
c
c c
c c
c
c
c c
c
c c
c
c c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c c c
c
c c
c c c
c
c c c
c
c
c
c
c
c c
c
c c
c c c
c c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c c c
c
c
c
c c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c c
c c c
c c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c c c
c c c
c
c c
c
c c c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c
c c c c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c
c c
c c
c c
c
c c
c c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c c c
c
c c
c
c c
c
c
c c
c
c
c
c c c
c c
c c
c
c c
c
c
c c c c
c c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c c
c
c c
c
c c
c c c
c
c
c
c c
c c c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c c c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c c c
c
c c
c
c
c
c c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c c
c c c
c c
c c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c c
c c c
c c
c c c
c
c c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c c
c
c
c
c c
c c c
c
c c
c c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c
c c
c c c
c
c
c
c
c c
c
c c c
c c
c
c c
c c
c c c
c c c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c c
c c
c c
c
c
c c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c
c c c
c
c
c
c c
c c
c c c
c
c
c
c c c
c c
c
c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c c
c c
c c
c c
c
c c
c c
c c
c c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c
c c c
c
c c c
c c
c
c
c c c
c
c
c
c c c
c
c
c c
c
c
c c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c c
c c
c c
c c c
c c
c c
c
c c
c
c
c
c c
c
c
c c
c c
c
c c
c c c c
c
c
c
c c
c
cc
Y
c cc c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c c c
c
c
c
c
c c
c
c
c c
c c c
c
c
c c
c c c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c c c
c
c
c
c c
c c
c c
c
c c
c c
c
c c
c
c
c
c
c
c c c c
c
c c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c c c
c c c
c c
c c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c c
c c c
c c c
c c c c
c c c
c
c
c c c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c c c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c c c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c c
c
c
c c c
c c c
c
c c
c
c c
c
c c
c
c
c c
c
c c
c
c c
c
c c
c
cc
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c c c
c
c
c
c
c
c c
c
c
c
c c c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c c
c
c
c c
c c c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c
c c c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c c
c
c c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c c c
c
c c c
c
c c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c
c
c c c
c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c c c
c
c
c c
c c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c c c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c c
c c
c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
cc
c c c
c
c
c
c c
c c
c
c
c
c c
c
c c c
c
c
c c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c c c
c
c
c
c c
c
c c
c
c
c c
c
c c
c
c
c c
c
c c c
c c
c
c c
c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c c
c c c
c
c c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c c
c c c
c
c
c c
c c
c
c c c c
c
c c
c c
c
c c c c c
c
c c c
c
c
c
c c
c c c
c
c
c c
c
c c
c c
c
c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c c c
c
c
c c c
c c c
c c
c c
c
c
c
c
c c c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c
c
c
c c
c c c
c c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c
c c c
c
c c c
c
c
c c
c
c
c c
c
c
c
c c
c c c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c c
c c
c c c
c
c
c c
c
c c
c
c
c c
c
c c
c
c c c
c
c
c
c c
c c
c
c
c c
c
c
c c c
c c
c
c c
c
c c
c c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c c c
c
c c
c
c c
c c
c
c
c
c c c
c c c
c
c c c
c c
c
c c
c
c c c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c c c
c
c
c c
c c
c
c
c c
c
c
c
c c
c
c
c c
c c c
c c
c c c
c c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c
c c c
c c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c c c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c c
c
c
c
c c
c
c c
c c c
c c
c
c
c
c
c
c c c
c
c c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c c c
c c c
c
c c c
c c
c
c c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c c
c
c
c c
c
c c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c c c
c c
c
c c
c
c c
c c
c c
c c
c c
c
c
c
c c
c c
c c
c c c
c
c
c
c c
c
c
c c
c
c c
c c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c c
c
c
c c
c c c
c c
c
c c
c
c
c c
c c
c c
c
c c
c c
c
c
c
c c
c c c
c
c c c
c
c
c c
c c
c
c
c c
c c
c c c c c c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c c c
c c
c
c
c
c c
c c c
c
c
c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c c
c c
c c
c c c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c c
c c c
c c c c
c
c c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c c
c
c
c
c c
c c c
c
c
c
c
c c
c c
c c
c c
c
c
c
c c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c c
c c
c
c
c c c
c c
c
c
c
c
c c
c
c
c
c c c
c c
c
c
c c
c
c
c
c
c
c c
c
c c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c
c c c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c
c
c c c
c
c
c
c
c c c
c c c
c c c c c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c c c
c
c
c c c
c c
c c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c c
c c
c c
c
c
c c c
c c
c c
c
c c
c
c
c c
c
c
c c c
c
c
c c
c
c c
c c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c c
c c
c
c c
c
c
c
c c
c c
c
c c c
c c
c
c
c c
c
c
c
c c c
c
c
c
c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c c
c c c c
c c
c c
c c
c c
c
c
c
c
c
c c
c
c c c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c c
c c
c
c c c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c c
c c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c c
c c
c
c c
c
c c c
c
c
c
c c
c c
c
c
c c c
c c
c
c
c c
c
c c
c
c
c
c
c
c c
c c c
c
c
c
c c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c
c
c c
c
c
c
c c c
c
c c c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c
c c c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c
c
c c
c c
c c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c c
c c
c c
c
c c
c c
c
c
c c
c c
c
c
c
c c
c
c c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c c
c c
c
c c
c
c c
c
c
c c
c
c
c c
c
c c c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c c
c c c
c
c
c
c
c
c
c
c c c
c c
c c
c c c
c
c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c c c
c c
c
c
c
c c c
c c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
c c
c
c c c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c c
c
c
c c
c c c
c c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c c c
c
c c
c c
c
c
c
c
c c
c
c
c c
c c c
c c
c
c
c
c c
c
c c
c c c c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c c
c c
c c
c c c
c
c c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c c
c
c c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c c
c
c
c c
c
c c c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
!c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c c
c
c
c c
c
c
c c
c c
c
c
c
c c c
c
c c
c
c c
c c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c c c
c
c c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c c c
c c
c c c
c
c
c c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c c
c
c c
c
c
c c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c c c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c c
c c
c
c c
c c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
cc
c
c c c
c
c c
c
c c
c
c c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c c
c
c
c c
c
c
c c
c c c
c
c
c
c
c c
c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c c
c
c
c c
c
c
c
c c c
c
c
c c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c c c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c c
c c
c
c
c c
c
c c
c
c
c c
c c
c
c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c c
c c
c
c
c c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c c c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c c c
c c c
c
c
c
c
c
c c
c c c
c c
c
c c c
c
c
c c c
c c
c
c
c c c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c c
c
c
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c c c
c c
c c
c
c c c
c
c c
c c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c c
c c
c
c c c
c
c c
c c
c
c c
c
c c c
c
c
c c c c
c
c
c c
c
c c c
c c
c
c c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c c c
c
c
c c
c
c
c
c c
c c c
c
c c
c c
c
c c c c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c
c c c
c c c
c
c
c
c
c c c
c c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c c
c
c c c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c c
c c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c c c
c c
c
c
c c
c
c
c c
c
c c c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
cc
c c
c c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c c
c c c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c c c
c c
c c
c
c c
c
c c c
c c
c c c
c c
c c
c
c c
c
c c c c
c
c
c c
c c
c c
c
c
c c c
c
c
c c
c
c
c
c
c
c c c
c
c c
c c
c c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c c
c
c
c
c c
c c
c c
c c
c c
c
c c
c c
c
c c
c
c
c
c
c
c c
c c
c
c c
c c
c
c c
c c
c
c c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c c
c c c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c c
c c
c c
c
c
c
c
c
c c
c
c c
c c
c c
c c c
c
c c
c
c
c c c
c
c c
c
c c
c c
c
c c c
c
c
c
c c
c c
c c
c
c c c
c
c
c
c c
c c
c c
c c
c c
c
c
c c
c
c c
c c c
c
c c
c
c c
c
c c c
c c
c c
c c
c
c
c
c c
c c c
c
c c
c
c c
c c
c c
c
c c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c c
c
c
c c c
c
c
c
c
c
c
c c
c
c c
c
c c c
c
c c
c
c
c
c c
c c c
c c
c
c c
c
c
c
c c
c
c c c
c
c c
c
c
c c
c
c c
c
c
c c
c c
c
c c
c c c
c
c
c
c
c c
c
c c
c
c
c c
c
c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c c c
c c
c c
c c
c
c
c
c
c c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c c c
c
c c
c
c
c
c c
c c c
c
c c
c
c
c c
c
c c c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c c c
c c c
c
c c
c
c
c
c
c c c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c
c c
c c c c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c
c c
c
c
c c c
c c
c c
c c
c c c
c
c c
c c c
c
c
c
c c c
c
c c
c
c
c
c c
c c c c c
c
c
c c c
c c
c
c c
c c c
c
c
c c
c
c
c
c c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c
c c
c
c
c c
c
c c
c c
c
c
c c
c
c
c c c
c
c
c c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c c
c
cc
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c c
c c c c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c
c c c
c c
c
c
c
c
c c
c
c
c c
c
c c c
c
c
c
c c
c c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c c
c c
c c c
c
c c
c
c c
c c
c c
c
c
c
c
c c
c c c
c
c c
c
c
c c c c
c
c
c
c c
c
c c
c
c
c
c c
c c
c c
c c c
c
c
c
c c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c c
c c
c
c c c
c
c c
c
c c
c c
c c
c c
c c
c
c c
c
c c
c c
c c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c c c
c
c c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c c
c c c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c
c c c
c c
c
c
c
c c
c c
c c
c c
c c
c c
c c
c
c
c
c
c c
c c
c c
c c
c c
c
c
c
c c c
c
c c
c c
c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c c c
c c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c c
c
c c
c c
c
c c
c
c
c c
c c
c
c
c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c c
c c
c
c c
c
c
c c c
c
c
c c
c c c
c c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c c
c c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c c
c c c
c c
c
c
c
c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c c
c
c
c c
c c
c c c c
c c
c
c
c
c c
c
c c
c c
c
c
c c c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c c
c c
c c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c c c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c c c
c c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c c c
c
c
c
c c
c
c
c
c
c
c
c c c
c c
c
c
c
c c c
c c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c c
c c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c
c
c c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c c
c c
c c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c c
c c c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c
c
c c
c c
c c
c
c
c c
c c
c
c c
c
c
c
c c
c
c
c c
c
c c c c
c c c
c c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c c
c c c
c
c c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c c c
c c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
cc
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c c
c c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c c
c c
c
c c
c c c
c c c
c
c
c
c
c
c
c
c c
c
c c c
c
c c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c c
c c
c
c c
c c
c c
c c
c
c c
c
c
c c
c c c
c c
c c c
c
c c c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c c c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c c
c c
c
c
c c
c
c c
c
c c
c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c c
c c
c
c c
c c
c c
c
c
c
c c
c
c
c
c c
c c
c
c c
c c
c
c c c c
c
c
c
c c c
c
c c
c
c c
c c c
c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c c c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c c
c c c
c c
c
c
c
c c
c
c c
c c
c
c
c c
c c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c c c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c c
c c c
c c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c c c
c c
c c
c c
c c
c
c c
c c
c c
c c c
c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c c
c
c c
c c c
c
c
c c c
c
c
c c c
c
c c c
c c c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c c
c
c c
c
c
c c
c
c
c
c c
c c c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c c
c c
c c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c c c
c
c c c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c c c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c c
c
c c c
c c
c
c
c c c
c
c c
c
c
c c
c
c
c
c
c c
c c c
c c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c c c
c c c
c c
c
c
c
c c
c
c
c
c c c
c
c c
c
c
c
c
c
c c
c c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c c
c c
c
c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c c
c c c
c
c c c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c c c
c
c c c
c
c
c c
c
c
c c
c c c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c c
c
c c
c c
c
c c c
c
c c
c
c c c
c
c
c c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c c
c c
c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c c
c
c
c c c
c
c
c
c c
c c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
cc
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c
c
c
c
c c
c
c
c c
c c
c
c c
c
c c c
c
c
c
c
c c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c c
c c c
c c
c
c
c
c
c
c c
c
c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c c
c
c c c
c c c
c c c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c c
c
c
c
c c c
c
c c
c
cc
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c c
c c c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c c c
c
c c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c c
c c
c c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c c
c
c c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c c
c
c
c
c
c c
c c c
c
c c
c c
c c
c c
c c
c
c c
c
c c c c
c
c
c
c
c c
c c c
c c
c c c c
c c
c
c
c c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c c c
c
c c
c
c c c
c c c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c c
c c c
c c
c
c c
c
c
c
c c
c c
c
c c
c c
c
c
c
c c
c c c
c
c
c c
c
c
c c
c
c
c
c
c c c
c
c c
c c
c
c c c c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c
c c
c c
c
c c c
c c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c c c
c c
c c
c c c
c
c c
c
c
c
c c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c
c
c c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c c
c c
c c c
c c
c
c c
c c c
c c
c
c c c
c
c
c
c c
c
c
c c c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c c c
c
c
c c c
c c
c
c c
c
c
c
c
c c
c
c
c c c
c c c
c
c c c
c
c
c
c
c
c c
c
c
c c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c c c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c c
c
c c
c c
c
c c
c c c
c
c
c
c
c c
c
c c c
c c c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c c
c c c
c
c
c
cc
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
m
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c c c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c c c
c c c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c
c
c c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c c
c c
c c c
c
c c
c c
c
c
c
c
c
c c
c
c c
c
c c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c c
c c c
c c
c c c
c
c
c c
c
cc
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c c c
c c c
c
c c c
c
c
c c c c
c c
c c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c c
c
c c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c c
c c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c c c
c
c c
c
c
c
c c c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c c
c c
c
c c
c c
c
c
c
c c
c
c c c
c
c
c
c c
c c
c c
c c
c
c c c
c c
c
c c c
c c
c
c c
c
c c c
c c c c
c c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c c c
c
c
c
c c
c c c
c c c
c c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c c
c
c
c c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c c
c c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
c c
c c
c
c
c
c
c c c
c
c
c c
c
c
c
c c c
c c
c
c
c c
c
c
c
c
c c c
c
c c
c c c
c c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c c
c c
c c
c
c
c c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c c
c c c
c
c c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
cc
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c c
c c
c
c
c
c
c
c c
c c
c c c
c c
c c
c
c c c
c c
c
c c
c c c
c c
c c
c c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c c c
c c
c c
c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c
c c
c c
c c
c c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c
c
c
c
c
c
c c
c c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c c c
c
c c
c
c c c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c c c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c c c
c c
c c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c c c
c c c
c
c
c
c
c
c c c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c c
c c
c c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c c c
c c
c c
c c
c c
c
c
c c
c c
c
cc
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c c
c
c c
c
c
c c
c c
c c
c
c c
c c
c
c c
c
c c
c c c
c c
c
c
c c
c
c
c c
c
c
c c
c c c
c
c c
c c
c c
c
c c
c
c
c c
c c
c
c c
c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c c
c c
c c c
c c
c
c
c c c
c
c
c
c c c
c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c
c c
c c c
c
c c
c
c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c c
c c
c c
c c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c c c
c
c c
c
c
c
c
c
c c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c c
c c
c c c
c
c c
c
c c
c c
c c
c c
c c
c
c
c
c
c c
c c
c
c c
c c c
c c c
c
c c
c
c c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c c c
c c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c c
c
cc
c c c c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c c
c c c c
c
c
c
c
c
c c
c
c c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c c c
c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c c
c
c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c c
c c
c
c
c c
c
c
c
c c
c c
c
c c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c c c
c c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c c c
c c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c c
c
c
c
c c c
c
c c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c c
c c
c c c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c c c
c
c
c
c
c
c
c c
c c
c c c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c
c
c c c
c
c c
c
c c c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c c
c c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c c c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c c c
c c
c c c
c
c c
c
c c
c c
c
c c c
c
c
c
c
c c c
c
c c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c c c
c c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
cc
c c
c c
c c
c c
c c
c
c
c
c
c c
c
c c
c
c
c c c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
cc c
c
c c
c c
c c
c c
c
c
c c
c
c c
c
c
c
c c c
c
c c c
c c c
c c
c
c
c
c
c c
c c
c
c c c
c c
c c
c
c
c c
c
c
c
c c
c
c c
c
c c c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c c c
c c c
c
c
c c c
c
c
c
c c
c
c
c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c c
c c c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c c
c c c
c c c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c c
c
c c
c
c
c c c
c
c c c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c c
c
c
c c c
c
c c
c c c
c
c
c c c
c c c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c c
c c c
c c c
c c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c c
c
c c
c
c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c c
c
c c
c
c c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c c c
c
c
c
c
c c
c
c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c c c
c
c
c c
c c
c
c c
c
c
c
c
c c
c c c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c c
c c
c c
c
c c c
c
c
c
c
c
c c
c c
c c c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
cc
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c c c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c
c c
c c
c c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c c c
c
c c
c c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c c c
c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c
c
c c
c
c c
c
c c
c c
c
c
c c
c
c c
c c
c c c
c c
c c c
c c
c
c c c
c c
c c
c c
c
c c
c c
c c c
c c c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c c
c
c c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c c
c c c
c
c
c c
c
c
c c c
c
c
c c
c
c
c
c c
c c
c c
c
c
c c
c c c
c c c
c c
c
c
c c
c
c
c c
c c c
c c
c c
c c c
c
c c
c c c
c
c
c
c c
c
c
c c c
c c
c
c
c c
c
c c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c c
c c
c c
c
c
c
c c
c
c
c
c
c c c
c
c
c c c c
c
c
c c
c c c
c
c c
c
c
c
c c
c
c
c c
c c
c
c c c
c
c
c c
c
c c c
c
c
c
c
c c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c
c c c
c
c c
c
c
c
c c
c c
c
c
c
c c c c
c c
c
c
c
c c
c c
c c
c
c
c c c c
c
c
c c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c c
c c c
c
c
c
c
c c
c
c
c c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c c
c
c c c
c
c c c c c
c c
c c
c
c
c c
c c c c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c
c c
c c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c
c c
c c
c c
c c
c c
c c
c
c c c
c
c
c
c c c
c c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c c
c c
c c
c
c
c
c c
c
c
c
c
c c c
c
c
c c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c c
c c
c
c c
c c
c c c
c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c c
c c
c
c c c
c c c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c c
c c c
c
c
c
c c
c
c c c
c c c
c c
c
c c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c c c
c c c
c c c
c c
c c
c
c c
c
c c
c
c c
c
c
c c
c c c
c
c c
c c
c
c
c
c c
c
c
c c
c c c
c c c
c
c
c c
c
c
c
c
c c
c
c
c c c
c
c
c c c
c
c c
c
c
c
c c
c
c c
c c
c
c
c c
c c
c
c
c c
c
c
c c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c c c
c c c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c c
c c
c
c
c
c c
c
c c
c c c
c
c c
c
c c
c
c c c
c
c
c
c c
c
c
c
c c c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c
c c
c
c c
c
c
c c c
c c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c
c
c c
c c
c
c
c
c c
c
c c
c c
c c c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c c
c
c c c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c c
c
c c
c
c
c c c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c c c
c
c
c c c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c
c
c c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c c
c
cc
c
c c c c
c
c
c c
c c c
c
c c
c c
c
c c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c c
c
c c
c
c
c
c c
c
c c
c
c c
c c c
c c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c
c c c
c
c c c
c
c
c c
c
c c c
c
c
c
c c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c c
c c
c
c c
c c
c c
c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c c c
c c
c c
c c c
c
c
c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c c
c c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c c c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c c
c c
c c
c
c
c
c
c
c c c
c
c
c c
c
c c c
c c
c c
c
c c
c
c c c
c
c c c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c c
c c
c c c
c
c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c c
c c
c
c c c
c
c c
c
c
c
c
c c
c c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c c
c
c c c
c
c
c
c
c
c
c
c c
c c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c c c
c c
c
c c c
c c
c c
c
c
c c
c c
c
c c
c
c c
c
c c
c
c
c
c c c
c
c
c c
c c
c
c
c
c
c c
c
c c
c c
c
c c c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c c
c
c
c
c
c
c c
c
c c
c c c
c c
c c c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c c
c c
c
c c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
cc
c c
c
c
c
c
c
c
c c c
c c
c
c
c
c c
c c c
c
c c
c
c
c c
c
c c
c
c c
c c c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c c
c c
c c c
c c c
c
c c
c
c
c c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c c
c c c
c
c
c
c c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c c
c c
c
c c
c c
c c
c
c
c c
c
c c
c
c
c c
c
c
c c c c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c c
c c c
c
c c c
c
c
c
c
c c
c c
c
c c
c c c
c
c
c c
c
c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c c
c c
c c
c c
c c
c
c c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c c
c
c
c
c c
c
c c
c c
c c c c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c c
c c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c c c
c c c
c c
c c c c c
c
c c c
c c
c
c
c
c
c
c
c c c
c
c c
c
c c c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c c c
c c
c
c
c c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c c
c
c c
c c
c
c c c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
cc
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c cc
c c
c
cc
c cc
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c c
c c c
c
c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c c c
c
c
c
c
c
c c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c cc
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c c
c
c
c
c
c c
c c
c c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c c
c c
c c c
c c
c
c
c
c c
c c c
c c c c
c
c c c
c
c c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c c
c c
c
c
c c c
c c c
c c
c
c
c
c
c c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c c
c
c
c
? c
c
c cc
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c c
c c
c c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c c c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c c
c c
c
c
c c
c
c c
c
c c c
c c c c
c c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c c c
c c
c
c c
c
c c c
c c c
c c c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c c
c
c c
c
c
c
c
c c c
c
c c
c c
c c
c
c c
c c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c c
c
c
c c
c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c c
c
c
c
c c
c
c c
c c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c c
c c
c
c
c c
c
c
c
c c
c c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c c c
c
c
c
c c
c c
c c
c
c c
c
c
c
c c
c
c
c c
c c c
c c
c
c c c
c c c
c
c
c c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c c
c c c
c c
c c
c c
c c
c
c c
c c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c c c
c
c
c
c
c
c
c c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c c
c c c
c
c c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c c c
c c
c
c
c
c c c
c
c
c
c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c c
c
c c
c c
c c
c
c c c
c
c c
c
c
c c
c c
c
c
c c
c
c
c
c c
c
c c
c c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c c c
c c
c c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
cc
c
c c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c c
c c c
c
c c
c c c
c
c c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c c
c c
c c c
c
c
c
c c
c c
c
c
c c
c
c
c
c c
c c
c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c c
c
c c
c c
c
c c
c
c
c c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c c c
c c c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c c
c
c c
c
c c c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c c
c
c c c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c c
c
c c
c
c c
c
c c c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c c c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c
c c c
c c
c
c
c
c c
c c
c
c c
c
c
c
c
c c
c c c
c c
c
c
c
c
c c
c c
c c c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c
c
c
c
c c
c
c
c c
c
c c
c c
c c
c
c
c
c
c c c
c
c c
c c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c c
c
c c c
c c c c
c
c c
c
c
c
c c
c
c
c c c
c c c
c c
c c
c
c c
c
c
c c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c c
c
c
c
c
c c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c c
c
cc
c c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c c
c
c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c c c
c
c c
c
c c
c c
c c
c c
c c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c c c
c c c
c
c
c
c c
c c
c
c
c
c
c c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c
c c c
c
c c c
c
c
c
c c
c
c c c
c c
c c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c c
c
c c c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c c
c c c
c c c
c c
c c
c c c
c
c c
c
c c
c c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c c
c c
c
c c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c c
c
c
c
c c
c
c c
c c c
c c
c c c
c
c c
c c c c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c c c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c c c
c c
c c
c c
c c c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c c c
c
c
c
c c
c
c c
c
c c c
c c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c
c
c c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c c
c c c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c c
c
c c c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c c c
c
c
c
c c
c
c
c
c
c c
c c c
c c c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c c
c
c
c c c
c
c c
c
c
c c
c c c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c c c
c c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c c
c
c
c
c
c
c c
c c
c c
c
c
c c c
c
c
c c
c
c c
c
c
c c
c c c
c c
c c c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
c c
c c
c
c c
c
c
c c
c c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c c
c c c
c c
c
c
c c
c
c c
c
c c c
c c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c c
c c
c
c
c c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c c
c
c
c
c c c
c c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c c c
c c
c
c c
c
c c c
c c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c c
c
c
c c
c
c
c
c c
c
c
c
c c
c c c
c c
c
c c c
c
c
c c
c c
c
c c
c c
c
c c c
c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c c
c
c
c c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c
c c c
c c
c
c
c
c c
c c
c
c
c c c
c
c
c c c
c c
c
c
c c
c c c
c
c
c c c
c
c c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c c c
c
c c
c
c
c
c
c c
c
c c
c c
c
c c
c c
c
c
c
c c
c c c
c c
c c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c c c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c c c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c c
c
c
c c c
c c
c c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c c c
c c
c
c
c
c
c c
c c
c c
c c
c
c c c
c
c
c c
c c c
c
c c c
c c
c
c
c
c c
c c
c
c c
c
c
c c
c
c
c c
c
c c c
c
c
c
c
c c
c c
c c
c c
c
c c
c c
c
c
c
c c
c
c c
c c c
c
c
c
c
c c
c
c
c
c
c c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c
c c c c
c
c c
c
c
c
c
c
c c
c
c
c
c c c
c c c
c c
c
c c c
c
c c
c
c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c c
c
c c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c c c c
c
c
c c
c
c c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
cc
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c c
c c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c c
c
c c c
c
c
c
c
c c
c c c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c c
c c
c c
c
c c
c c
c
c
c
c c c
c c c
c
c c c
c c c
c
c
c c
c
c
c c
c
c
c c
c
c c
c
c
c
c c c
c
c
c
c
c
c c
c c c
c
c c
c
c c
c
c c c
c c
c
c
c
c c
c
c
c c c
c c
c c
c c
c
c
c
c c
c c
c
c
c
c c c
c
c
c c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c c c
c
c c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c c
c
c
c c c
c c
c
c
c
c
c
c c c
c c
c
c c
c
c
c
c
c
c c
c
c c c
c c c
c c
c c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c
c
c
c
c c
c
c
c c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c c c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c c c
c c
c c
c c c
c
c c c
c
c c c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c c
c c
c c
c
cc
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
cc
c c
c c
c
c
c c
c
c
c
c
c
c
c c c c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c c
c
cc
c
c
c
c c
c
c
c
c
c
c
c c
c c
c c c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c c
c
c c
c
c c c c c c c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c
c c c
c
c c c c
c c
c
c
c
c
c c
c c c
c c
c
c
c
c
c
c
c
c c c
c
c c c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c c
c
c
c
c
c
c
c c
c
cc
c c
c
c c
c c
c c c
c
c c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c c c
c c c
c
c c c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c
c
c c
c c
c c
c
c
c
c c
c
c
c c
c c
c
c
c c c
c c
c c c
c c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c c c c
c
c c c
c
c
c c
c
c
c c
c
c
c
c c
c
c c c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c c
c c
c
c c
c c
c
c
c
c c
c
c c
c c
c
c c c
c
c c
c
c c
c c
c
c c
c c
c c
c c c
c
c c c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c c
c c
c c
c
c c c
c c
c
c
c
c c c
c
c c c
c c
c
c
c
c c
c c c
c
c c
c
c
c c c
c
c
c
c c
c
c c
c c
c
c
c
c
c c
c
c c
c c
c
c
c c
c
c c c
c c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c c c
c
c
c
c c c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c c
c c
c c
c
c c
c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c c c
c
c
c
c
c c c c
c
c c
c c
c
c
c c
c c
c
c c
c
c c
c c
c c
c
c
c c
c
c c c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c c c
c
c c
c
c c
c
c c
c c
c
c
c
c c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c
c
c c
c
c c
c
c c
c
c c c
c c c
c
c
c c
c
c
c
c c
c c
c c c
c c
c c c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c c c
c
c
c c
c c c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
cc
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c
c
c c
c
c
c c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c c
c c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c c
c c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c c c
c
c c
c
c
c
c c
c c
c
c
c
c
c
c c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c
c
c
c
c
c
c c
c
c c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c c
c
c
c
c c
c
c
c c c
c
c
c c c
c
c
c
c
c
c c
c c
c
c
c c
c
c
c c
c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c c
c c c
c c
c c
c
c c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
cc
c c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c c c
c
c
c c
c
c c
c
c
c
c c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c
c
c c c
c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c
c c
c
c
c c c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
cc
c
c
c
c
c
c
c
c c
c
c
c c
c c c
c c
c
c c c c
c
c c c
c
c c
c
c c
c c
c
c
c
c
c c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c c c
c
c
c
c c c
c c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c c c c
c c
c
c c
c
c
c
c
c
c
c
c c
c
c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c c
c c
c
c
c
c
c c
c
c
c c
c c
c
c
c c c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c c
c
c c c
c
c
c
c c c
c c
c c
c
c c
c c c
c c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c c
c
c
c c
c
c c
c c
c
c c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c
c c
c
c
c c
c c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c c
c
c c
c
c c
c
c
c
c
c
c
c
c c c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c c
cc
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c
c
c
c c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c
c c
c
c c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
cc
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c c c
c
c
c
c c c
c
c
c
c
c
c c
c
c c
c c
c
c
c c
c c
c
c
c c
c
c c
c
c
c
c c
c
c c
c
c c
c
c
c
c c c
c c
c c
c
c
c
c
c c
c c
c c
c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c
c c
c
c
c c c
c c
c
c c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c c
c c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c
c c c
c c
c c
c c
c
c
c c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c c c
c
c
c
c
c
c
c
c
c c c c
c
c c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c
c
c
c c
c c
c c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c c c
c c
c
c c
c
c c c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c c c
c c
c c
c
c c
c
c c
c c
c c
c
c
c c
c
c c
c
c c c
c c c
c
c
c
c
c c c
c
c
c c
c
c c
c
c
c
c
c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c c
c c
c
c c
c
c
c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c c
c
c c
c
c
c
c c
c
c c
c c c
c
c
c
c
c
c
c
c c
c
cc
c
c
c c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c c
c c
c
c
c c
c c
c
c
c
c
c
c c
c
c
c
c
c c
c
c c
c
c
c c
c c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c c
c c
c
c
c
c c
c
c c
c
c c
c
c
c c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c c
c c
c
c
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
c