299999
CSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBSBSBSBCBCBCCSSCBSBBSSSSSCCBBCBSBBBSCCBCSCCCCBSCSCCCCBSBCSBBSSCSSSBSBSSBCCSSBBSBCBSBBSCCSCSSBSSBBBBSSBBSCCCSSBSSSSCBSCSCBSBBCBSCCSCSSBSCSCSBCBBBBBBCSSSCBBCBSBCBCSSSSBBSCSBCSCCSSBBBCSBSCSCBCBSCSSSSCCCBCSBSSSSCSCBSCBBSSBBBSSBBBSBSBCCBCSSBBBBCSCSSBSSSCCCCBBCSCCCBCSSSCCBCBCCCSBBSCSBSBSBSSSCSCCCCCBSSBBCCSSSCCSCSBCBBBCSSCSSSSBCSSCBBCBSCBBCSCBSSBCCBSBBBSSCCCSSSCCBBBBCCBCBSCCSSSBCSSBCBSSBCSCCCBCCCCBSSSBBCCSSSBSCSBSBBBBBCCCCSCCSCBSSSCCCBBCSCCBSSBSBBSSSSSCSCSCBSSBBCBSCSSCBSSBBBSCCSCBBCCBCSSSBCSCSSBSBSBCSBSBBCSSBSBBCBSBCCCSCBBBSBSBSSSBBSSBCCSSBBCBSBBBSBCCSBBBBSSBBBCSSBSCBCSCCCCSSCBSCBCSBSSBSCBCBSBSCSSSSSBBBSBSCCBSCCBCSBBSCBSSCCSSCSCBCSCBSSCCBSBBBSSCSBSBCSBSCBSSSBCBSBSBSSSBCSCBSCCBBCBCCCBCCBBBSBCSCCSCCBBCSBBSBSCCSSBCSBCCSBSCCCCSSCBBCSCBCSBBSSBSSBBBCCBSCSSCSSSBBSBSSBCSSSSBBCCBCSBBSCCBCCSSBBCSBCSSBBCSSCBSCBSSCSSCCBSCSCBCBCSSBCBBSCCCSCBBCBSBBSSSSCSSCSCCBCCCCSBBCSSCCBBSBCBSSBSCSCCBCCBSSBSCCCBCCCCCBBCCBCBCCSSSSSBCCBSCSBSBCBBSSBBBSBBSBBBCSBSCBSCSSSCSSSCBSSSBCBCSSBCCCCCSSSBCCCCCBBSCSCSCCBSBSSSSSCBCSBBSBSSSCSSCBSSCBBBSBSCCCBBBCSSBBCCCBBSCCBBBBSCBSCCCSSBSBBBCBSBBSBCBBSSCSSCBSBSBBBSSCSCBCBSBCCCCBCBBBCSCCSSSCBSSSCCCCSBBCSBCBSBCCSSSSBSCBSBSSBBCBBCBBCSSSSCSSCCSCBBCCCSSSCBSCSSSSBSBCBBCSCCCSCBSSSCSSCCBSSSCBCSCBCSBSCBBSBBBSCCBBCSSSCBBSCCSSSCCBSBSBSBCCBBCCBSCSSCCSBBSBSSCBBBSCBBSCBSBBCCSBSCSSSSBSBCBBSBSBBBBCCSCBSBSBBCBBSBBBCBBCSCBBSSBCBSSCSBBSBBBBSBBBCSCBBSSSCBBSCCSBSSBBBBCSBSCBBCSSBBBBBCCBSSSCSSBSCSSCSCBBSBSBCSBSCCSBSCBCBSBBSSBBBCCCSBBCCSCCSBSBSCSSCBBCSCSBBCCCCBCSSSSCCCCCBBBBCSSCCBCBCCCSBBCCSCBBBCBCBCSBCCBBCSCCCSBCSBBBBBSSSBCCCSSCCCSCSBCBBBBSCSSBBBBSCSBCCSSBSSBBBSSBCSSBBSBSCSBSBBBBBBBBBBSCBSCBCSCCSBCBCBSSBSBCSBBSBCSSCBSCBBSSCSSCBSBCBSSBCBBCCCBSCBSCCCCCBSSBCSBSBCCCBSSSCCBSSSCCSCCCSBCCSCSBBCCBCCCBCCBBBCBSSSCSCBCSCSCCSCSBBBSBSSCSSCBCSSCBCCCBSSSCBSSCBCBBBCBBCBCBBCBBBCCSSSBSCBBCSCCCBBSSCBSBBBSCCCBCSBBCBBBSBSCBCSBCSBSCCCSBSSBSCSBCSCBSCCBCCCBSBSBBCCBCBCCBSSBBSCSBCCBCCCCSSBBSCSSCBSCSCBCSBBSCSSSCSCCCBCCBCCCBCSCCSSCBBCCSSBSCBSBCSSCSSSBBSSSSCCSBSBSCBBCSBSSCCCSCSSBSBBBBBCBCSBCBSBSCBBCBSBCBBSBBSSSCSSCSSBCBBCCBSBCCBSCSSBCCBBCBCSSSSBCCCCCBCSCBSCSBCBCCSSBCBCCBSBCSCBCBCSBBSCCSCCCCSCBSBSSBCSBSBCBSBCCBCBCSCCBBCSBSSBBCBSBSSBSCCBCCBBCBCBSCCSSCSCSCBBCSBSBBBSBSCBSSSCBSSSCSSSBSBCBBSCBCBSSBBCCCCCCCBSBBCBBSSBBCSBCSBSBBBSCSBSCSBSBCCSBSSCCBBSCCBCSSBSCSBBSCSSSSSCCBBSCBBSSSBBCCSBBSCCCSSCBSCSCSBBBCCBCCCBSCBBSCCBSCCBBBBSBSBBBBCBBCSBSSBCBBSCBSSSCBBBCBBBSSSBSBBBCCBCBCSBCCCCCBSCCBBSCBCCSSBSSSSSBSSCSCSSCCBSSSSSBBCBCCBSBSSCCSCCBCBBCCCCSCCBCSBSCCCCCSBSBSCCCCSSBBBSSCSSBBSCCSCBCBSCSBBBSSBSBBSCSBSSCBSCCBSCCSSSBBCSBCCBCCCSBSCBBCSBCSBCCSSBSBSCBBBBSBBBSCCBBBBSCBBSCCCSSSBCBBCSSCSCSBSBCSCSCCSCSSBCSSBBBSCSBSSSSSCSSCSCBSCCSBBCBSSBSCCBSCCSBBCCBSSBCCCCSBBSSSSSBSBCBBBBCBBCSBBBBSCSSBSCBBSSSCCBCCCCSBBSCBSSCBBSCBSBSSBBBBSBBSCSCSCBSBBSCBSCCCSSCBCCSCCCCSCSSCCSSCBSSSSCCBSBBSCSBSCSSBCCCBCCCCSBSSBSBBCBCBBSSBSSBCSSSSSBBCSCCCBBSBCSSCSBBBBSSBCCBBCSCCCCBCSCSCBBBBCSCBBCSCBBBCBBBCCSBSSCCSBCSBBBSSSCSCSCSBBSSBCBSCSBSSCCSBBCCCSSCBBCSCSBSBBCBCCCBBBBSBSBCCSCSCSBCSBSCCBCCSSBSCCSCSCCBBBSSBCCSBBBSBBBBBBSBCCSSSBBBBBCCSCBSCBBBBCSBBCBBBSBCSCBBCBCSCCCBBSSCCSSBCBBCSCBBSBBBSCBSBCBCBCBBBCBSCCSBSBSSCBCCBCBBBCSSCSSCCSSBCCSBBCBSCSSSBCSSBCSBBSCBBCCCCSBBCCSCSCBSCCSCSSCSCCCBSSSSBSCBSSCSBSCBCBCCBBSBCSCSCSCBCCSCBCBSCSBCCSSSBCSCSSSBSCBBSCCBSCCCBCBCCCBCSBCCCCCCCSCBSCSSSSSCBBSBSCBCBSCCBCBBCSSBCCBBBBBBCSCCBSSSSSCBCSSCCBCCSCCCSBBBCSBCBCBBSBSSCSCBCSBBCSCBSCSSSCSCCCBSSBBCCCSSBSSCCSSBSSBCBBBSCBCSCCCCBBCCBSSCCSCBBCBCCBBBCSSSBBCBCCCSSCSBSBBBSCCSBBCBSCSCCCSSBCCSCCSBSCSCBCSBCBCBSSCSSCBSSSSBCBCCBBBCCSCCCCSSBCSCCCBBBSBBCSCBBBSCBBSCCSSCSCCCBCCBBSCBBSBBBSCBBCBBCCBCSSBSBBCSCSCSCBBSSSCBCCSBCSCBSBCBBBCBSCBBSCCBCBBCCBBSBCSSBSSBBCSCCCCSCSSCCCCCCSCBSBBCSCSSSCSSBBCSSSCCCCSCBSBCCSCCBSCSCCCSSSBBBSSBSSSBSCCBBCBSCCSBCSCBCBSBBCCCCBSCSSCCCBSCSCSBBBCSSCBSBCSBBCSBBSBCSBSBBCSBSBBCBCCCCCBBSSSBSCSSBCBBCBSCCBBCSCBCBSSSBSBCSBBSBBCSCBBSSCBBBCBCCCCBSSSBSCCSBCCCSSBBSCCBBBCCSSBCBCSCBBBSCBBSCSSSSCCBSCCBBCSSSCSSSBSSBBCBCSBSBSBCSBCSBCCSCBBBCCSCCSBBBBCBCSBBSCSBCSCSSBCSCSBSBBCCBCCSSCCSBCCCBBSBSCCCCSBBSSSSCSBSCSCSSSCCSCSCBSCSSBSCSSSBBSBCCSBSCCSSSCCBSSBCCSSCCSBCBCBSCSBSSCCBCCCSBBCCBCCSBSBBBBCCCBCSBCSSCBCBBCBCBSCBBBBCSBBBBBBBCBSCBSSBBCSBBSSCBBSBBCCBSCCBBCBSBCBSSCBCSCCCSBSBCBBSBBSSSCCCBCCSSBBBCSCBCCCSBSSBSBBCSCSCCCCSSSBCSSBBBBBBBCBSCBBBBCCSBSBBCCCCBBSCCBCCBBCSCBBBBCSSBBSCCCCSCSSBCSBBSBCBCCCCBCCBSSBCBCSBBBSSSBCSCBSCSCCBBSBBSCBSBBSSSSBBCSSCBCCSBCSSSBCCBSCBSCSSCSSSBBCBCSCCSCBBCCSBCBBSCSBCBCSSBBSBSSBSBSSCSCBCSBCCCSSSSSBCCCCBBBCSCBBSBCBBCSSSBSBCBSSCSBCSSBBCCCSSBBSBCSSSSSCBCCSSBSBSBSBBBCSBSSBCBSCBSBBBCBBCSBCBCSSSCCBCBCBSCSSBCSBSCBSCCSSBBSCSBSSCBSBCBBBSBSSSSSBBSBCSSSSCBBSBCCCSBBBBCCCBSSSCSCBSCSBBCBBSBCSCSSBSCSBBSCSCCCCCBCSSCBBSBSSSSBCBSCSCSSSBCSCCCSCCBBSBSBBCSCCCBCSBBCCBCCBSSBCSCSSCBCBSBCBCCBSSBSBBCSBSBBBCBSSSBBBBBSSSBBSSSSCBBCSCBCCSCCCBSBSSCCCCBBBSCSSBBBBBCBCCSCBCCBCCBCCSBCBCSSBBSCBBCBCSSSSBSBSSSCSBCSSCCSSCBBBBBBBSSBBSSSBCBSCCCCBCBCBCBCCBSCSSSCCBSCCCBSSSSBCBBCBSSSCSBSBCSBBSSCBCSBCCCBBBSBBCSBBCCCCCBCBBCBCSCBBSBSSBBBCSBSBCSBSSBBCSSSBBBBSBSCSBBCCBCCCBBBBCSSSCSBBBBSBCCSCSCSSCCCSCBCBBSCSBSCBBBCSSCBBBCBBBBBCCCBBBCBSBSCCSCSCSSSBCCCBCSSCCCCCCCBCSSCCSSSSBSCCCBSSSBBBCBCBCBSBCCCSBSCBSCCBCSCCCSBSSCSBSBCCBCBSSCBCBBSBSCBCBCSSSCSBSBSCSCBCCSSBCBBCSCSCBCBBSCSBCBSCBSCBCBBCSCCSCBBCCCSSSSCSBSSBCBCCCCCSSCSCSSCBSSBBBCCBSCSBSSSBBSCBCCBCBSBCCBSBCSCCBBBCSSBCBBCSCCBCBSBBBCSSBSCCSBBSSSCBCBSCBBSCBBCCCSCSBCCSSBBCBSBSCSBBSCSSSCSSCCCSBSBBSCBBBSCCBCBSBBSCSBBSSBBCCBCCSCSCSCCSCBSSBSBBCBCBBCBBSCCCCCBBCSCBBBSBCSSSBSSBCBBBCBSCCBCSBSCCSSCBSCBSSCCCCBSSBCBCSSCCBBCSCBCCSBSBCBCCBSCCSCSBCBSSSSBSSSBCCCBBBSSBBCSCSBCSBCCSSCCCBBBCCCCCSCCBCBBBSSBSBSSBCBSSSSCSBBSBBBBBCBSCSCBCCBCCSSSBCSCSCBCCCCSSBSBBSCBSBCSBBBBSSCSCCCSCSBCSCSCBBSBCBSCCSCCCBSCSBSCBBBBSCCCSCSBCBCBSCSCSCSBSSCSBCBSCBCCSCBCSCBSCCCBSBSCCBCBCBSSSCSCCCBCCSCSCBSBSSBCBSBBBCSCBCSSCCCCCBSBCBCSBCSBBSSBSCCBCBBSBCBSBCBCCCSSBCCCCBSBBBCSSBCSCSCCBCBCCCSCSCSSSSBSBBBCCCCSCCSSBBCBBBCSBBSSCCBBCSBBCSBBCCSSSBSSCSCCCCCSBCBCCSCSBSBCBCCBSCCSCCCCBSCBBBSSSBCSBBCCBCSBCCBCCBCBSSCBSCBSSBCCSSBSCCBSSSSSBCSBSSCCSBSBCBBBCCSCSBCSSCCSBCBCSBBBBCSBSSSSBBBSSBSBCCCCSBSBCSSSSBSSCBCCBCBCCCSBBSCSSBCCCBCBCBBCSSBCSBSCCBCCBBBCCSCBSSBSBBBCCCBCCBCBBBCCSSBSBBBCSBSCSSSBCSSBSCSCBBCBSSSBCCCBSCSBBBCSSSCCCSCBBBBBSBBCBCCCCBSBBSCCCCCSBBCBSBSSCCSSBBBSSBBBSBSSCSBBSBSCCBSSCBBBCBBSCCCBBBSBBBBSBBSSCBCBCBCCBCCSBBBBBCCBSSBSCCCSSBCSBSSBSSCSCBSBBCSCCBBBBCCCCBSBCBCCSCBCCCCBSCCSCSSCSBSBSCSBBSCCCCBBBCSSSCSSSSCBBCCCSBCCCSSSSBBCSSCSBSSCCCCCSBCCBSSSCBCSCBBCBSCCBSBCBBBCSBBBBCCSSBSCCBSSSBCSSCSSBBCBCBSSSSSCBSCSCCSCCBSSBSCCSBBBBBCSBCSCBBSBBSBSCSCSSCCCSSSBCSBBCBCBBSBBCCCCBCCCBCSBSSSSSBCBCCSCBSSBBSSCCSBCSBBBBBSCCSSBCBSBBBSSSBBCBCBBBSCCBSBBCSBBCBSCCSCSCSCBSBSCCCSCBBBSCBBBBCSCSBBCCCSBSCBBBSCCSBBCCBCSSSCBSBBBSSCBCCCSSBBCSSCBCSCCBSBCCSSCSSBCBBBCSBSSSSCCSCBSSBCCBSBBBSSSCSBBCSSSCSSSCBSCSBBBBCBBSCCSBSBSBCCCBBSBCSCSSSSSSSSBBBBSCBCBCCBBSBBBCBSBBCCSSSBSBCCSBBSBCCCBSBCCCCBSCBSSCSCSBCBCSSCCBCSSBSCBBSSCBSCCSSSSCBSCSCCBCSSSBSCSCBSBBCCBSSSCSBCCBCCSBBCBSBBSSBBBSBCBCBBCSSCCCBCSBBCCCSCCSCSCCSBCSSSCSCBBCBBBCBCCCSBBSBSCBSBSBBSCSCSCSCCBSBCBCCCBSBSCCBBSSSSBSSBSBBCBBCCBCSSSCSSBCSCCBSSBBCSCBSBCCBSCCCBBCBSCCCCCBCBBCSBSCBSSSBBCBSCSSBCBSBBBSCSCSSSBBBSSBCBBCCCSCSBCSCCCBBBCSBSBBCCSSCBSSCBCSBBSSCBSBSBBSSSCCCBBSCSSSCSBSBCBBSBCCBCBBBBCBBSCSCBBCCSCSBBSBCBCBBSCSCSSBBSCCBBBCCBCSCCSSSBSCCCCCBCSCBBCCSBCSBCCBBSBBBBBSBSSCBCSCBBSCBBSSSCCBSSCSCCBSBBBCCSCSSCSBCCCSCBSBSCBCBCBSCSBSCSCBBCCSSSBSSBCCCCBSBSSCSBCCCSBCBSCCSCCSCBCCBSBBBSCBSCSSCBSSBSSBSSBCSBBCBSSCSSBCBSBCSCCBBBBCCCCCCSSCSSBCBCCBSCCBSSBBCCBSCCBBSBSBSBCCBBBSCCBSCBSSBSSBSCSSSCCBCCSCCCCSBCCSSCCCSBCCSCCSBBSSCCCCSCBSSSBBBSBBCSSBBSCCCSSSBCBCSSCSCSCSCSSCCSSSCSBCCBBSSSCBCCBSCBSBCSBCBSBSCCCCSSCSCCSSCBCSSSSCCCBBCBCBBCCSCSSCSBCCCBSBSBBCCCCCBBBBBBCCCSCSBBSSCBCSSCBSCCCSSSBCCSCCCCSSBCBCBCCCCCCBCBCCCBBSBBBBSBBCCSSCCCSSSSSBBCSBSBCSSCCCSCBBBCCBBBSSCSSSSCSSSSBBSBCBCCCCSCCSBSCBCSCBSSSSCBBBBSSBCSBSSCCCCBCSCCBCSBCCSCSCCBCBBCCBBSSSSCCBBBSCCSCCSSSSBCBSSSCCCSBCSBBCSSCSSSSCSSCSBBCSBSCBSSCBSBBBSCBCSBCSCSSSBBCCSCSSSCCBCSCBSCCBBCSBBCSBCCCBSCSBSSSSCCBSBSBCCBBCSSSSSSSBSCCSCSBBBCCCBCBBBSBBSBSBBSCSCBSCSBBBBBCCSBSCCCSBCBSCSBBSBCSSBCBBSSSBCBBSCCSBCCCBCSSSCBSBCBCBCSBSSSBCBBCCCCSSBBBBBCBCSSBCBSCCBCCCCSBBBCCCSCSCCSCCCCBBCSSCBCCSSSBSSCSSBCBSSBBSCBSBBBSCCSSSSSSSSCCCSSBBBSBSSBBSSSBBBSSBSBBBBSCBSSCBBBBBCCBSSCBSSBCSCBCCCBSSBCCBCCCCBSSCSCCCCCSSSBCCBSCSBBSCCBCSBCSSSBCBBSCBCBSCCBCSCCSCSBCBSSCSSCBCCBBBCSBCSBBCBBCCBSCBBBCSBSSBSCBCSCCBCBSSBSBBCSCBSSBSSSBSCBBCSCBBBBBBSSCCBCSSSBBCCSSSSCSCSCCSCCSCCCCBSCCSSCSCBSCBSCCBCBBCCCCSCCBBSSCSBBSBSBSBSSBSSSCSCCCCSBCBBBBCSSCSCCCCCSCSCCCBCSBCCSCBSSSCSSBCSBSSSSBBCBBBSCCCCSBBCCSBBBCCCCSCSCBBSCSSCCSBCBBSSCSBCCBBBBSSSCBBBCBSSBCCCBCBCSSBBSBCBBCBCCBBCBSCCBCCCCBSCSCSSBCBBSBBBSSCBSCBCCBBSCBCBCSCCCBCSCBBSSBSBCCSCBCCCSSSSCBBSCSSBSCSCBBSSBCSCBBSSCBBCBSCBCBCBCBSCSCCBBSSBSBCBSBCSCBBCSBBBSCSCCSCCBSCSBBSCSSCCBCCSCBSCBSSBBSCSCSBCSSSBCBBBSCCBBSBBBSBCBCCCSSSCCSSSSBBBBCBSBCSCBCCSCBBBBCCBSCCBSSSSSBCSSCSSBBCBCSBCSCBSBBCBCSBCBBCSCSSCCBSBSCSBSCCSSBCBSSCBBBSSBCSCSBBBBSSSSSCCCBSCCBSSBBSSCCSSBBCSSSCCSCSCSBSBCCSCCCCBSSBBBCSSSBSSSCBCSCBBCCSSBSSCCCBSBCBCBSSSBCBCBSSCSCSSCCSCBCBCCBBCSBCSCCSCCCCCSSSCCCSBCCSCSCBCCBSSCSSCCCSBBBBBBBCBCCSCSBBCSSSBSCBBCBBSSCSCSSCBBCSSSBCBSSCBBCCCCCSBCCBCBBSBBSCBCBBCBSSCSSCBBCSSSCSBCBBBSSBBCCCCSSBCCCCBSBBCBSSCBSCBBBBBCBCBCBCBBCCCBSCBCCCSSBSBCCBBSBCCSSSSCBBBSSSBSSSBCSCCCBSBSSBSSBBSBSSCCCCCCBSBSSBCCSSSCSSCSBCBCSSSCCSCCCCSCBSBBBCCBCSCSBSBCCCSSCBCBCSCCCSCSBSSBSCBSSBSSSCSBSSBBCBSSBBSSSBSSBCBCCBBCSCBSCBSSBCSSCBBBCBSCCCBSBBCSSBSCCBSCCBCBBSCCCSSSSSCCCBBCSCCCBSCBCBBSBCBSBCBSCBBBSSCSBBBBBBSSCBBCCCCCCCBSCCSBBCCBSBBBCBCSSSBCBSSCCBCCCCBSCBBBSSSSSCBSCSCSCCSCBBSCBCCCSSCSBSBBCCSSSCSCBCSSCCSSBSSSSCCSSSBBCBBCCCBSBSBBCSBCCCCSCBSSCCCBSSCCCSBCCCCSSBBBSBSSBBCCBSCSSBBBCSSSBCCBCBBCBBSCBBCSCBCBBBSCSSBSSBSBSBCSSBCSSCSSBCBSBCCSCCSSCCCCCSBSBCSCCBBBBCBSCCSBSBBSSCBSSBCBBBCBSBCBBBBSSCSCSCBCSBBCCCCBCBBSBSSSBBBCBCCCSSCCCSBCSSSCCCBCSBBSCSCSBSCBSCBBCBCCBSSSSBSCCSBBCBSCBBBBCBCBSCSBSSSCSBSSBBCBSCCBSBBCSCSSCCSSSCSSBCCCSCBCSBBCCBBSSBCCSCSSCCSBSSSBCBBBBSBCSBSSBCBCSBCSSSSBCSBBCBBBCSCCBBBBSCBCBSBCCSBBCCCBSCBSBBBBCBSSBBCBBSSBCBBCCCCBSSSBCSCSBSSSCBSCSCCCCSCSSBCCSSSBCCBSBCBSSBBSCSSSSSCSBSBCSBCBSCBSSBBCCSSCSCBSSCCBBSSCSBSCSSSCBCSSBCSSSSBCSCSBSBSCCCCCBCBBCSSCCCSCSBCBBCBSSSBBBCCSSBBSBCBBBSSCCBSCCBSSCBBCBSCCSCBSSSSBBCBBCBBSSCSSSSBSSSBCBBBSBSSBSCBBCSCBSBBBCBBSCSSBSBCSCBCSBSCCBCBSSBCBCSBSCCCCSCBBBSBBCBBCBCBBCSBBBSCSBBCSSCCCCSCCCBSCSBSSSSCBBSSSSCBCBCSBSCCBBSSBCBSSCBBCCBCBCSSSCBBCSSBCSCCSCBSBSBBBCBCSSCBSCSBCSBBCCSCCSCCSSSCSBCSBCBBCSBBSSSBCBCSBBCBCSCBCBBSBSCCBBSBBCCBSBBBCSBCBSBCBSCCCBBSCSBBSSSBBCBBBCBBCBSCSCSBCBBSBSCSBCSSSBSCCBBBBCCCSBBCSCBBCCCBSCSSBSBSBSBBSBCCCSBSBCBBSBCSBSSCBSBCCBSBBCBSCSBBSBBBCCCCCCSBSCBBSSBCCSBSSSBCBCSCBCBSBCSSCSSSBBBCCBBSBCSSCCSCBSSBCBCCBCBBSSSBSSCCCCBSSCSCCSSCBBBCCSSSCBBSBBBCCBSSSSCSSCBBBSCCBSSCCBCSSSCBBCSCCSBBCSSCSCSSCSCBSBCBSSBCSCCCCSSCCBCSBSBCBCCSCBSCBBBBBSSBCCCBSCBSCSBBCBSSCSSSCCCSBCCBSBSBBSBBSCCBBBBBSBCCCSCCBSBCBBBCSCSSCSSBCBCSCBSCBBSCCCCCBCCSCSBBCBCSBCBCBSSCSCCSCBBCSSSBCSCCSCCSSCCCBCCCSBCCCCSBCSSBCBBSSSSCSSCCCBBBBCSSCBCCCBBBSCCCSSBBSCCCBBCCSBCSCCBSCBCBBBBSCCCSSBCBSCBCCSBBCCCBSSSCSCBCSBSBSBCSCCSSBCCSCSBBBCBCSBSCBSCSSBBCBCSBBBBCCCBCSCSSCSBBSSBBCBCCBSSCBBCCBCSCBBCBCSBCBBSSCBBBCCBSCBCSSSBSBCBSBSBBBSCBCBSCBSCSCCBBBSCCCBBBCCSCSSCBBCBCCSBSCSCCBCSBBBSCSSCCCBSCCBBSBCCSBCCCSCCSBSBCSSBBSBCCBSSSSBBBCCCBCCCCCSCBCSBSSCBSSSCCCSSBCSBBBSSBBBCCSCCCBBSSCBSCSCBCCCSBCSSBCCCBBCCSCBCCSBSCCSCBBSSBBSCSBBBCCCSSBSSBBSSBSSBSBSBBSSSSSSCSSCCBBCBCCBSBBSCCBSBCBSCBSCSSSSCBCBCBBCCBCCSBBBBSCSBBSCCBBBCBCCSCBSSCCCBSBBCSCCSBCCBBSSSBCBBCBCSBCBCSCBCBSBBCSBCBSBSCSCBSSBSBCBCBSCBCSCCBBCSBSSSCBCSCBBCBBSCSBCCCSBSCBBCSSBSCCSBBSSBCCCSSCSBSBBCCSBSSBSSSBBBSBSCCCCSSSSSSSBCBBSBCSCSCBSBBCSCSCBSCSBBBCSSBCBBBCSBSCSBBCCBSCBCBSBCCBSBSCCCBCSBSSCCCCBBBSCSSSCCCBSSSBBSBBSSCCCCCBCBSCBSBBSSSBSCBSCBCBSCCCBSCBCCCSSSBSBBBCSSSCBSSSBSCBCCCSBCBCSBCSCBCCCBBBBCBBBSCCSSCBSBSCCSCBCSSCBSSSBSBCBSBSBSBCBSCBSBBBCCSBCBBBBBBCBCSBSSSBSSBSCBSSBSBCSBBCSSCBSSBSSCBCBBSSBBBSCBCSSSCCBSSBBCBBSCBBCCCSBBBSBBBBCSSBCBCSCSCSCSSCBSCBCBCCBCSCCCCCBSSSBCCSBSCCSCCSBBBCSSBCSBSBBSSSCSSCBCBBBSBBBBSBBCSCSCCSCCBCSCCBBCSCCBSSCBBBSCCBBSBCBCSBCBBCBCCBBBBBSCCBSBBCBBSSCCSSBBSCSCSSSBCSBSBSCBCBSBBBCSBCSBBBBCCSBSBSBCBCCCBSSSCCBCSSSBBCCBCCCBBSBSSBBBBBBCCBCBSSBCBSBSCBBBCCSBBBCBSSBSBSBCBSBBCSSSCSSSSBCBSSCSSBBCCCBSSCBSSCCCBBSBCBCCCBCSBSCCSSSBCCBSSSSSSSBSCBCSBBCBBBSCBCSBBCCSCCCSCSCCCBBCBSCSBCSCSBSBCBBSCBBCBBBBBCBCCBSSSCSCCBCCCSBCBSCBCBSBBSBBBCBCSSBCCCCSSBCSSBSBSSBBBCCSBCBSSCSBSCBCCCCCSCCBCSCBBSBSCSSBCBBCBCSCCBBBSCSCSBSBBCCSCCBCBCCSSBBCSSCBSBCCSCBBSBBSBCCCCSBCSCSSCCBCCBSCSSCSBCSSBCCSCSSSBCSBBBBBCCCCSBSBSCSCSBSCSSBSCBSSBBCBBSSSBBSBBCBSSCSSBBCSCCBBBSCBBBCBSBSSBBSCCBCSCCCCCBSSBCSBBBBCCBSSSBBBBCCCBSBSCBBCCBBCSSCCCCSCBCCCSBSBCSSBBBSCCCSBBSCCCBBCCSCSCCCCBSBBCSSBSCCSCSCCSCBBSCSCBSSBCCCBCCCSBBSSCBCCCBBBBSSSBSSBCSBSSCSSBSCCSSCCCCBCSSCCBSCCCCBCBSCCSBCCBSBCCSBSCSBSBSSBCBBSBCBBCBBBCCCBCBBCBSSBBCBBCSCBCCCCCCBCSBCCCSBSBBBBBCSBBBSCBBBBBCSBBBSBBSCSSBBSBBCSSCSCBCBCCCCSCCCSSBBCCBCSBCSCSSCBBCBCBBBCBCSCBSSSCBBBSCCBSSCSBSSBCBSBCBBSSSSBBSSBSSCSSBBBSSBBSBBSBSSBCSCSSBCSBBCCSBSCCBSCBBBCCBBBSSBSBCBCCBCCCBBSCSCCBCCBCSCSSBCBCBBSSCCSBSCCCSCBCSCCBBCCBBSBBCCBCBCSCSBSBCSCSCCBBSBBCSCBCBSSBCSBCSBSSBBCSSCCCSSBCCSBBSBBBBCCCBBCCCSCCSSCBCBCCSSCBSCCBSCCBCBCCSSSSBCSBBCSBSBBSBSBBSBSSSSSBBCCSCCCBBBCSCBBSCCSCBCBSSCCSSSBSBSBCCBCCCSCCBCCCCSBSBBBBBCBSBCSBBSSCBSCSCSSSCBBCCSSBSSSSSCCCCCCCSCSBCSCCCBSCBBBCCSCCSCBCSCBSBCSCBBCSSBSSSCSBBSCBBBBSBBBCBBCBCSBCBSCSCBSBCBBCCSBBSCBBCCBSSCSSSSSBBCBSSBCCBSSBBCCCCSBSSSBBBSBBCBCBSBCCBCSCBSBBBSBSSSBBSBBCBCBCSBCSBSSCBSSCSSSSSBSCBCBBCSBSBCSSBCBSCCSCSBCBBBCCSCCBSBCSCSCBBBSBBSBBCSCCSCCSBBCSSBBBCBCSSCSCSSBSCBSBBBCCBBBBSBSSSCSBBSCBBSSBBSCBBSSBBSBSCBBCCCSBSBSCBBCBSSSSCBCBSCCCBBCCCBCCSBBCCSSBBSBCCSCCSBCCSCBCBSCBCSSCCSBSSBBCBBSSSBCCSCBBCSSBBBCSBSSBSCBCBCCCBBSCCBBBBBSCBBBCBBBSBCBCCBBSBCSSBBSBBSBSCBBCCCCCCBBSBBCSCCBCCBSSSSCCCSBBCBSSCCBBBCCBSBBBSSCBSSSCSCCSCBBCCCBCCSBBCCBSSBBCSSBSSSBCBSCCCBCCBSSBBSSSBCBBSCCSBBBBSCCCCCCCCSSBCCBBBSSBBCSCSSCBSSSCSSBCSCBSSBSSSBBBBBBCCCSCBSSSCBCCSBSCCCCBCBBSSCBBCCCBCBBBCSCBSCBSBBBSBCSSBCBSCCBSSBSBSSSCSSCSSBBBBCBSCSCSBSCCBSCSBSCSSSSBBCSCSSCCCCCCSCSSBSSCBBBCSBSCBSBCSCBBSSSCCCCCCBCSCBSBCCCCSCCSSBCBSSBSSBSSSBBSSCSBCSBCBCCBCSBCCSCBSSSCCBCCSSCCBCBSBCCCSCBCSSCCBCCCBBCSSCBSBCCCBCBCSBCBCBCBCSSSBCSSSSBSCSCBCBCSBBSCCBBCBBSSCCSBCSCCCSSCSCCCCBSBBSCCBBCCSCCBCSSBCSCCCSBSBCCBBBSBSCSSCSSSSCBBBCCSBBBSSBBCBBCCCBCCBSCCBCSSSCSCCSBBCCBCBBBBSSBCBBSBCCBBCCCSBBCBBCBSSCSCBCSSBBSSCCCSCBCCBCBBSCSSSBBCCBBCBBSBCBSBSBCCSCSSBCCBBSCCCBBSSBSBCBCSBBBBBCBBSSCSCBCSSBCBSSSBSSCBCBCBCBSBSBCCCSSSSSBCSBSCSCBCBCBCBCBCSSBBCCSBBBSBCSCBBCSCSBBCSCBSCBBSCCBCSSCBBSCCBCBBCBSSBSCBSBCCSSBBCBSCCSCBSCCBBSSSSCBCSCCBSCCSSSCCCBSSCBSCCSSSSBCBBBBBBSSSSSBSSBSSCCBCCSSCCBCBSSCBCSBSSCCBCSBBCCCCSBBBBSBCBCSBBBCCBBSCCCSSBCCSCCCBSCBSSCSSCSSSSSBCCBBBBSCSSCSSSSBCSSCBBCCSBCCBCBCSSBCCCSBCBBSCBBSCCCBCCCSCCCCCBCBCBCBSCBSSBSBCSCBBBSCCBSBCBCCBBSCBSBCBSCCBSBSBSCSBBBBBBCCBBSCSBCSCCSBCSSCCCCCSCSBBBCSBBBSCCSSBSCSBBSSCBBSBBSBSCSCBSSCSSSCCBCBSBSBCSSSCCCBSCCSBBBSCCBCCBBBCBSCSCSCBCSBSSBBCBBCCSSSSSCSSCBCBCCSCBSSCSCSSBBBSBBCCSBCBBCCBSBSSCBSBCCCCBCCCBCBBCBSCBSBBBSCCSBCBBBCBSSBSBSCBSBCSCSCSCSCSCCSCCBSBBSCSBSCBCCBCBBBSBSCSSBCBSSSCSSSSSSBBBBCCBBBSSCBBBBBSCBSBSBSSSCBBSBBCCCCCBCSBSBCCBBCBCSCCSBBCBBCSSCCSSCBBCSBCBBCSBSCSBBCCCBCCCBBCSCSCSBBSSBBBBSBCSBSCSBBBBCCBBBBSSCCCBCCSSCCCCCSSCCBSSBCBBSBSCCBBCBSCSCSBSSBSSBBCBCSCBSSBSSSCSBBBBBCBBCBBSCCCSCCSSSCSBCSSSCCBBBSCBSSCBSSSSSSBSBSBBSCBCBBCCBBSBSCSCSBSBSSBBCBCCSBCCCCBCCCBSSBBBSBSBSCSSBCCCCCSCSBCCSCCSSCCCCBSSCBSSBCSSCSCCSCCBBCCBCSCBCCBCBCCCSSSBSSSCSCBCSSCBBBBBBBBCBSCSCBBBSSCSCCSBCCCBSBBBCSSBSSBCBSCBSCBBBSCCCBSSSBSCSCBBSBBSSCSBBSBCBBBBBSSCCBCCCSBCCSSSBSCCSCCCCBCSBSBSBCSSBSSCSBBSCSBCSBCSSSCBBBSCBSBCCSSBCCBSCBSSCCBCBCSBBCSCBBSSBSSSBBSCBCCSSBBBBSSSCCCSCSCCBBSSBBCSBBBSSSBSCCBBSSCSBBSCCSSSSBSCBBBSCSCBBCBSBSSCCBBCSSSSSCBSCSSCCBCSCCCSCCSBCCBCBBBSSBBSSBBSBBCSBCBBCSBSSSCBSCBSCBCBSCCSSCBCSCBCSBBSCSBBSSSCBSBSSBBBSBBSBCSSCSBBCSBCSBBBSSBBSBCSCBCBBCCCSCSSBBCSCSCBBCCBSBBSSSCSBSSCBSCCCSBSSSBBSSBSCSCCCSBSSBBCCSBBSBBBCCCBBSCCBCBSCSSSBSBBCCSBCSBCSCSSCCCBBBBSBCCCSSCBCCSBBBSCBBBCBSSBSSSBCBBSSCBBCSSBCBCSCBCBCCBCCSBBBBSCCCSCCSBSBSCCBCBCSCCSSSBCBBCCSBSCCBCBSCCSCCBSSCSSSBBSSCCSBCSSCCSCCSBSSCSBCSSSSSCBCBCSSCSSCCSSSSBBBSBSSCSCCCCSCCBBSCSBBCSBBBCBSBBSSCBSSCBSBCBCCSCBBSBBCSSSBSSCSSSSSCSBCCBBSBSCSCBBSBSBSCBSBCBCBCSBBSCBBBCCCBCBCSSCCSCSBBBBCSBBCBSBSCSSSBSCCSBCSCCCCBCSBSCCCBSSBSBBBSBBCBSSCSBCBCBBSCSBBCBCSBSBSCCSSSBCCSCBBBSBSBCCBBSBSSBCBBSCCCSCBCBCSCBSSBCBSCCBSBCSCBSSSBBCBSCCSSSBBBSSSSBBCCSBCCCCSCBBCCSBSCBBSCBSSBSBSCCBBBCBCSSCSBSSSBBSBSBSCCSBSCCBSCBBCCSBSBBSBCSCSSCCCCSSCSSSBSCBSSCCSSSBSCCBCSSBCBSCSSBBCBCSSBBBSCSCSSCSBBSBSBBSSBCBSCBBSCSCCSSCBBCCSBBSBBBCSBBBBBSBBBBSBBCSCBCBCCSBCBCBCSSCCCSCCBBCCCBSBSBBCSSSCCBSCSCCBCBSSBBBCCSSSSSCBBSSCBBBBBBBCBCCBSSBCSCCBBSSBSCCSBCCCSBBSSSSBSSSCBBCBSSCCSSBCCCBSSBBCBSCSSCBSSSBCCCSCBBCCBCBCBCSCSCCCCCBBBCCCSCCBBCSBSCCBSCSCSBCBSCBBSSCBCBSCBCBSCBBSCSCSBSCBBSCSSBCBSCCCCCSBCSBSBBCCCBCBBBCSBCBBSBCCSSSCSCBBBCSBCSSSCSSBCSBCCBSCSCSBCBBCBCBBSBSBCBCSSCCSBCSBBCSBCCCBSBBBBSSCCBSBCBSBBSSSBBCBSBCSCSBSCBSBCBCBSBCBSBCCSBCCBBCCCBSBBSCBSCSBSSCCSBCSSCCBCBBCCCCBCSBCBBBSSSSCCSSBCCCSBBBCSSCBCCSCCSBCCSCSSCSCBCSSBBBSCSSSSSBCSCSSBBSCCSBBSSBCSSSCSCBBBSCSSBBSBBSBCBCBCSBCSSBSCCCSBSBCCCSCCBBBCCBSCCSSCCSCBCSSBSSSBBSSSCCBCSBBSCCCSBBCCBBSBBSSBSBBSSCSBBBSSSBBSCCSBSBBCSBBCSCCCBSCSSBBCSCCCSBBSSBBCCBSBSCCSSSCSBCBSSBCBSCCSBSCCCSCBBSSCSSSCSBSBCBCBBCBBBBBCCSBCCBCCCSSCBSSBCSSCBSSBSBBSSSSCBBBBSCCSSSCCSSSSBCSBSBBSBCBBSCCCSBBCBCCBCSBBBSBBBSSCCCBBBCBCBBBSBBSCCBCBCCCSSBBBSCSSSBBCBSSBSSSSBCBBCSBCCBCBSSSSBSBBBSBSBCCBSBSCSBSBCCCCSBSSBCCSSBCSBBSSBBBBCBBBBSSBBSBBSSCSSBBCBCCSCCSCSBBSBBBSCSSBCBCBBSBCCBSCBSCBCCSSBSBSCCBSBSBCBCSSCCCSBCCSSSCCBCBCBCBSBCCBCBBBSSCCCBSCSBBBBCBSBCBSBBSSBCBCBSBCSSSBSCCSBSCBCSBSCSSCSCBSBCSBSCSBBCBSBCSBBBBCCBSCSSCSBSBBBSBSSBBBCSCSBCCBBCSBSBCCSCCSBCCBCSSCSCBCBBBBCBCCBBBBSSBSBSBBSSSBBSBSSBSSBBCSSSCSBCSCSBSBBSCBCSCSCCBBBSCBCSCBSSSCBCCBCSBCSSCCBCCBCBBBSBSCCCSBSSSSSBSBCBSSSBCBSSSSBCBBBBCCSCCSSBSSSSSBSSBCBCSCSBSBBBBCBCSBSSCSBBSSBBBCSCCSCBSSBBSBBSCCCSSCBCSBBCSCSSBSBCCBCCBCCCBSCSSCBCBBBCCBSBCSSCSSSBCCCBBCCSSSBSSCSSBSCSSCCCBCCBCBSCCSCBSCCBSSCBBBCSCCBSCCCCSCCCSSCSCBSSBBSCCBCBCBSSCCSSBSCBSCSBBSCSBSSSSSSSCCSCSCSCCBBBCCSCBBBBCBCCSSSCCCBBBSSCCBCSCCCCBBCSSSSBBCBBCBCCBCBBCCSBBBSBSSSSCSSBBSBBCCCBSBCSBCBCSBCBSBSSCSSCSBCCSSSSSCSSSBSBSBBCBBSCSSBSCSSCBCCSCSSCBSSCCCSSBSCCCSCBCBBSCSBBCBCBCSSBCBCCCBSSCSSSBBBBCBBCSCSSSCSBBSBCSCSSSCSSCBCBCSSBBCCBBBBBCBBBBCSSBBBCSCCSCCCBSBBBSCCSCBSBBSCBBSBCSCBCCBCCCSCSBCBBCBCCCCBBBSBBSBBSBSBCCBCBBSSSSCBSCSBSBSCSSBCSBBBSBSBCCCBSCBCSCSCSCCSCBSCBBBCBBBBCSSCBSBBCCSCCCSBSSBSBSBBBSSCSCBSBSBCSBCBCSBCSCSBBCBBSSCBSSSBCBCCSSCBCBBSCCCBCSCBCSSSSBCSBCBSBBCBCBBCSBBBBSCCCBCSBSSBSSBSCCSSBSCCCCCSSCBBCCSSBSCSCCCCBSBSSSCCCBBSCBBBSBCCSSSSBSBCSBSBBBCCBBCBCBSCSSSBSCSBBBBCSCBBCCSBCBCBSSSSSCSCCBBCCCSCSCBSCBBSBCBSCBSSSSSCSSCCCBCBCSBCCCSCSSCCBCBBSCCCCCCSSBCSBSBSSCSCSSBCBBCCCCBBCCSBCBCSCSCCBSCSSBSSSCCSSSBBSSBCBBBCBSSCCCBCSSSSCSCBCSCSSBSSCCBSSBCSBBSBSCSBBBCSSCBSSBSSSSSSSBCCSBSCSSCBBCCBCCSBCCBBCCBCCCSCBBSBSBSCSCCBSBCCSBSSBSSSSBSCCSBCCBSBBBSCSSCSSSCSSSSBBSCSCSBCCCBCBBBSCBCBBSSCBSCSSCBSBCSBCCSCSCBCSSBBBCCCSCBCBCCBCBSSBBCBSCCCSSBCCBSCCBSSBCSBBBBBCSSCCSSBSBCSCBSBSSSBCCCBBCCBSCSCCSCSBBCSBBCBBCBBBSSCSBCBCCBCBCSCSSSCCBBBSCSSBCCBBCBCBSSBCBSSSBCBSBCSCBBBCCBSBSBCSSCCBCSSSSCCBBBBSCBCSSBBCBBSSCBCSBSCCCBSBCCCCSBSBSBBSSSBBSSSBBBSSCCBSSBCCCBBCCCBSCSSSCSBSBSCSBSBSSSCSSBCBCSSCSCSCCCSBSCBBSCCBBBBSBSCBSBCSBBSCSCBCCSBBSCSCBBSBSSCSBBCSCBBCBCSCSSBCCCSSSBSSCBSBSSSCSCCBBCCSSSSCSCSSBCBSCCBBCBSBSSSBBCCBBSBCBBBBSBCBCBSSBBBCSSCBSBBBSSCCSBBCBSSCSSSBCCSBSCCCBSSBCBBSCBSSCSCCCSBCSBSCCBBSBSBBSSCSCBSSCCCBSCSSCBCBCSSCCCBSCBCBCBSCCBCBSBSCBBSSBSBCSBSBBCSSBCBSSSCCBSCSCCSBCSSSBCCBSBSBCBCBCSCCCBBCCCBCSCCCBSSBCSBSSBCCBCCSBSSCSSCBSSCBBCCBBSCSCSCSBSSBCBSCBSSBSBBBSBBCBSCCBSCBBSSBSSSBBCBBSCCBCBSCSSBCSCBCBSCBSBCSCSSBSCSCBCBSBCCCSSCBBBCSBCBSBSSBSSBCBCSCSCSBBSSBSBBSCBBCSCBSBSSBCBSCCCBBSBCBCBCSSSBBCBCSSSCCCSCCCSBBSCCBCBSCBCSSCCBSBCCCSCSBCSBSBCCBCCSSSSCBSSBBBBBCBCSCBCCCBCSCBSBCCBCSCBSCCCCBCSCBSBBSSCCSCBSCBBCBSSBBSCBSSBCBCCSBCSBSBCBCBBSSBCSSCSCBBCSBSSCBBBBCSSSCSCBCSCSSBCSSSBCBSCBSBCSCCCCSBSBBCCBCBBBCSCSBBSCBBCSBSSCBCCSSSBBSSSCBSCCSCBCCCSSBBCBCBBSCBCSBCCBBSBBBSSCCSSSCBCBCBBCBSSSBSSCSCBBCCBBSBSSSSBCSCBCCBBCSSSCSBCCSCBBBCCSBBBCBCCCBCSSCSCCSBCSCSSCSBCSCSBSSSCSBCSBBCCCSSCCSBBCBSBSCBCBSBBBBBSSBSSSBCCCCCSSSCBSCCSSCBBCCBCBCCBBCCCSCCBBBBCSBCSBBBBSCBSSSCCSBBSCCSCCBSBBCBCBBCSSCBBCCBBSBBSSSSBCSCCCSCCCBBSBSBCCSCCCBBSCBCSCCSBBCCBSBCCSCBCBCSSCCCBSCBCCCBBBSBSBBBBBCCSCCSBBSSCSSCBSCCSBBSSBSBBSCCBSSBSSCCBSBBSCCSBBBBBCBCBSCCBBCSSSCCBCSSCBBBCBSCBBSBSBBSCCSSSCCCSBBBBBSBCBSBCCBSSBBSCBSCCCSSBBBSSBBCCCBBCCBBCSSSBSSCBCCCBBSBBSBSSBBSSBBSSSSSSBCBCBSCCBSBSCCSSBSCBCBCBSCCSBSSBSBBSSSCSBSCBCBSCBCCSSSSBCSSSCBCBCBBBSSCBCCSSSBCSSBBSCCCCBCCSSCBSSBCBCBBCCCCCBCCSCSSCCBCBCSSBSCCBCBSSBCSCBBSBBCSCBSCBBCSCCBSSBBSCSBCSSCCCCCSSCSCBSSBCBBBSBBSCBSSCSCCCSCCCBBSCSCCCCBCSSSCCCBBBBBSBBBSBCBCSSSBBCBBBBBCCCBSBSBBBSCBSBCCCBSCCBCBCBCSSBSSSSBBBBCCBCSBBBSBCBCSCSBCSCCSBCBSCBSSCBCSBSBCCSBBBBSSSCCSCSCCBCBCCBSBSSBBBCSBBBBSSBBCCBBBCBSCBSSBCSSCCBCSBSCBBCSBCBCSSBBCCSSBSCBBCBSCSSBSBSCBBCSBSBCBSCCCCSBCCBCSSBBBSSBBBSCCBSSSSCBSBCSBBCCSSSCBSCCSBSCSCSCSBBSCCSBCCBBCBCCBSCBBCBSBBSCBCCSCSCBCCCCCCBBBSSBSCCCCBCBBSBCBBBSCCSSCBBBBSSCSSBSBBBCSBSCBCCCSCCBBSBBBCSBBSSBCBCSCBCCSBSSSCSSSSSBCBBBBSCBCSCBSCCBSBBCSSBCSCCCSSSCBCSBCCBCBBCBCCCBSCCSCSBBSSBSBBBCBCSSCSCCSCBCCCBSCCBSBSCCSBCCCCSCBCBSSCSBCBSCBSCSBCBSSSCBSBSCCBCSBSSBCCCSCCSSCBBSCSCCCCCSSBCCBBBCSCBSCSCCBCCCCCSCCCSCSSSCBBBCSBSCBBCBCBBSSSSSSBBSSCBBCSCCCSCBSSCSCBCSBBBCCCBBSBCBBSSSSSSBCBCSSSBSCCSSSBBCCBBSSSBBCBSSCSSBSSSSBSSCSBSCBSBSBBCBCSSBBCCSSSCCCCSBSBSSBSCCSBBBSSCSCBSBBBCSBCBCCCSBBSCBCCBBSBCBBSSSBCBCCBBSSSBBCCCCBCCBSBCSSBSBBSSBSBSCBSSSCBBBBBSSCBCBBBSCSBSSCSSCCBBSCSCSCSCCSCCSCSCBCBSCBBCSCSBBCCCCBCSSSCCCCCCSCCCCBCBCCCSSCSSCCSSBCSBCSSSBSCBBSSCBSCBSSBCCBCBSBBSSSBSCBSBSBSBBSSSBCSCCBCBCCBBBSSSSCCSBBBSCSBBCBCSBBBCSSBBBBCBCCCSBBBCCSBBCBSSSBBCBSSCBBCBBCBSBCSCCSCCSBCSCSSCBSCCSSBCCBBCCBCBBSSBSSBBBBCBSCCCBBSSCBBSBCCCSSBCBSSBSBBCCBBSCBBCBSCCCCSBCBCSCBSCBCSSBSSCSBSSBBBBBCCSSBBCSSBCCBSCCCCBBCSBCCCCBSCBBBSCSCCBSCCSBSBBBBSCSSBSCCBSCCSSSBCCCSSCCBBSSCBBCBCSBSBSCBCSCCCBBBBCCCBCBBCSSSCSBSSSSCBSBCBCCCBSCBCBSSBBCCBSCCCBBSBBSBCBCSBBSSSCCCCCCBBCSBSCSSBCCBCCSSCSBBCBBCCSBCCBCBSCSSCCSBBBCSBSCSBSCBBSCCSBBSCCSCCBBSBSSSCSSBCSSBCCSSCCBSBBCBBBBBBSCSSSSSCBBSCCBCBCCSBSSBBSSSSBBCSSSCSBBSSSBSBCBBBSSSCCSSSCSSBBCBCBCBBSBCCBCCSBCBCCCSSBSSBCSCBBSBSSCBBBBCBBBCCCCBBBSCCCBCCBBSSCSBBBBBSBSBSSBSBSBCCSBSSCBBBSCSCBSBBSSSSBBSSSSCSBSSBSSBCBCCCSBBBCCCBBSCCCSBCSCSBBCBBSCSBBBBBSSBCBSSBSBCSCBSSCSCBBBCSSBBSBSSCCBBCBBCBCBBBCCCCCCCCCCCSBSCBBBSBBBSBCCCSSSSBBBBSCSCCBSSBBSCSBBSCCCBBBSSBSCSSBSCSCSBCCSSCCSBSSSSCBBCSSSSBBCBCCSCCBCSSBSBCBBSCCSBBCBBSSBSBBSSCSBCCSSBBCBSCSSBSCCSBBSSSSSBBBSSSSSBCSCBBSBCBCSSBSSCSBBBBCCSBSBBBCSBSSSCSBSBCBCBBCCSSBSBBBCBBBBCBCSCBBCBCSCBSSSCSCCSCCBSSSBBSBSSSBBSSCSCCCCCBBCCBCSBSCCCBCCSBCCSSBSSBSSSSCBBBCBCBCBSBCCCSCCCCBBCSSBBSSSSSCSBCSBSSCBBCBBCSCCSSCCCSBBBBCCBSSCCBSBSSBSCCSSCCSCCSBSBSBBCCSBCBBBCSSCCCBSSSCCCCBBSBCSBSCBCSSCSCCSBBCSCSCSSCBBBCBCBBSBBCSBBBCCBBSCBSBBCSSCCSSCCSBBCBSCSSBCSSCSSSSBBSCCCCSCBSSCCBCCBSSBCSCSBSCSSCCCBSCCBBBSCBCSBSCSBBSCSBSCBCSBSBCCCCBCSCSSBCBBCSCCCBBCSSSCCBCCBBCSCSCSSBCSSBCBSBCCBBBCBSCSBSCSSSCSBSBSSSCSBBCBCBBBBCSCSSCBBSBCBCSBBBBCBSBSSCBSCBSCSSBBSBSSBSCCCSSBCSBBBBBCBBCSBBCCCBBSCBCCSBSCCSBCCCBSSCBCBSBBBBBSSCBBBBSCBSSCBCBCCBSSCBBCSSSSBSSCSSSCCBCSBCBBCBBCCCBBSSCCBSBSSBBCBBCBBCBSSSBSCBBSSCSBCSSBSSBSBBSBCSCCSCBCCCCSBSCCBSBBBCBBBCBCCSBSBSSSBCBCBSCSBSSSCBSBBSSSCBSCCSCCBCSSBSSCCCCSCSSCSSCCCCBCBSSBSBSSBSBSBCBSCSBCCCSSSCCSSSBBBBBSSSSBCSBSBCBBBSCCCCCSBSCCCCSBSSCBSBBCBSSBCSSBCBCCBSBCSCCCSBSSCBCBCSSSCSBCSCCSCBSBCCBBBSSCBSSCBBCBCCCBBCCBSBBCBSBSSCCSBSSBCSBSSCSCCSCBSBBBBSSSCBCCCCSBBBCSSCBBBSBSSCSSCSSBSCBBSSCBSCSBBBCCSSCSCCCCCBBCSSBSCCCSCSBCBSCCSCSSBSSCCSSBSCBSBSSCCSBBSSCSSSBSBCBSCCBSSSSSCBSCSSSBSCSBBCBCSSSBCBSSBBSSCSBCBBBBBBSCSSBBCSSBCBSCSCSSSBBCSCCSBSSSSBSSCBCSBSBBBSSCCSCBSSBBSBSBSBCBCBBSCBSCBCCSCCSSCBSBSBCCCCBCSBSBSBSSSCCBSSSSCBSSSBSSBSBBSBSSBCCBCBCCSSCBBCSBBBCBBSCCBBCSCBBCCBSSBCSSBBSCSBCBSBCSBCSCSBCCCCCCSSBBSSBBSCCCCSBCSCBBBCBCBCCSCCCSSSSCBCCBCSBBBBSSCBCSBCBCSBSBSCBSBSSBBCBCSSBSCCSCSBSSCBSCBSCCCBCBCSBCSBCSSSBSSCBSSSCBBBBSSSSBCCSCSSBCCCSBCSBBSSSSCBCSCBSCBSBBSCBCSSCCBSSBCCCCCSBBBCSCSSSCBBSBBBCCSCCCCBBCSSBBSCBSBCSSBBBSCBSCCBBCBSBSCBCCCBCSCBCBBBSBCCCBCSCCSBBCBBCSSBBCCCBSSCSCBSSSCCBCBSSBCCCCSSBSSBCSCSSBSSSSBSCSCBSSCBSBBBCSCSCSBSSSSCCCSSSBBCBBSCBCSSCBBSCBCSCCCCCCSCCSBBBSCBBSCSBCSCBBSSSCCCSBSCSBSSCCCSCBCCCCBBSSCSCCBBBSCBBSBSCBSSSCSBBCSBBSSSCBCSCBBCSBSBBSCSSBBCSBCSSSBCBBCBCCBCBSBSSSBBCCBBCBCBCSBCBSCSSSCCCCBSCSCSSSBCBSBSSCCCSSBCBSBSCSBBBSSSSSSBCBSBSSSBCCBCCBCBSCBSCSCCSCCSSSBSCBSCSBCSCSCCCCBBBSSCBSCBBBCSSBSSSSSCSSCSSBCSCBSBBCCBBBSBSSCCSBSBCSSCBBSCCCBSSSSCCBBBBSBCCCCBBBBBBCCSSSCBBCSSSCBSBBCSBSCCCCSSSBSSSCSSSBCCSSSSCBCCCBBCSSBSBBBCCCBSSCCBBCBCCBSSCBCCBSCCCSBBSBCCBSCCCSBCCCSBBCBSBCCCSSBSBSBSCBBSCCCSBSBSBCBBCSBCBSCSCCBSBCCCBCSCCCCSSCCCBSBSCSCBBSCBBBCBSCCCBBSBBSSSBSBSSBCBCCCBSSCSBBBCSSSCSSSBBSCBCSBCBCSSBBSBBBCCCBSBBBSBSBCBBSSBSSCSSCBCBCSSCBSCSBSSCBSBCBCBCSSSCCBBSCCCCBBSCSSBCBCBCCCCCCSBCCCCBSSBCCSSBBCCCCBSCBSSBSBBSBSBCSBBBBBBBBCCCSSBCCSBCCBSCSBBBCBCBCSBBSSSSBCSCBSBCBCCBSBSBBCBCSBCCCBCSCCSSCSBCCCCCCSCSBBCCSBCBCBBCSCBBSCCCCSCCSCSSCCSCBBSCCSBSBBCSCBCCSCBSBCBBSBSCCBCBCCSCSCSBBCCSBCCCCBBSSCBCSBCCBCBCCSCBSSBSCCBBSBBCBSCBCSSCSSCCCBCSBCBSBCBCSBSCSBBBBSCBCBCSSBSBSBCSSBSCBBSCSBBCCSCBBSSSBSBCBBBCCCCCCSBCBSCCCCSBCCBBBBBCBSBBSSCCCBSCSBBBBSBSBBSBCSBBSSSCSCBCBSBCCSBCSBBSCSBSBCBCSBCSBCSCCCCCCSSBSCCBSBBCBCCCSCSSCSBSBCSSSSCBSSCCSCBBSSCBBSCBSCBCBSBSSBCBSBSBSBCSCCBBBSBBSBBBBSCSBSCBBBCBBCCCSSCCSBSSSBBCCBSCCCSSSBBBCBCCCCSSBBSCCSSCBBBBBBSBCBSCCCCBCBSSBSCBSSSBCBCCCSCCSBSSCSBSSSBCSBCSBSCCSCSSCBCSBSSCSCBSBCSBSBBSCSBCCCSBCBBBCSBCSSSSBCBBSSBSBBCCSSSBCSBSSSCCBBSBBSBCCCBSSBCBCSBSSSBCBSCCSCCSSBBBCBBBCCSBBCCCSSBBSCBSSBSSCBBBCSSBBSBSCSBSBSSSCCCCBBBCCSSSCSCSBSCSBCCBSCBSCBBBBCBSCCSBCSSBSSCCBCBBCCSCCCBSBBCCCSCSBCBBSCCCSSCSCSSCSCSSSSSBBCSBSBCCCCSCCBSCBBBSCSSBBSBCCSSSCCCSBSCSBBBBCCSBCCBCBBBSSCSBSCBSCCCBBCCBCCBCBSBSCSSCBBSBSBSSSCSBCBSSCSBSBBBBBSCCSBCBSBCBBBBBBSCCCCCBCSCSSCSBBCSCBSSSCBBCBCSCBSBBCBBSBSSBCCBBSBCSCBBSCBCCCBSCCCBSBSSSSCCSSSCCCBCBSSBCCBCCCCBBBSSCBBBBCBSCSSBBBCBBBSSBSCCBSCBSSBCCBCSCCBCCCBBBCBCSBCCSSBBCSCCSBSCCCBBBBBSSBSBSCSSBBCSCBSBSBCCBBCSCBSBSSCBBCSBSSBCSBSSBBSCSSCCBCSBSBSSCSBBCBSBCCBCSCCBCCSCSBCBSSBSSSSBSCCCSCBCSSSSCSCBCSCBBBCSCSCSCBCSSBSCSCSBCSBSSCCSSBBSBCBSBCCCBCBSSCBSCCSCBCCCCSSCSSSCSSBSCSBSBBBSSSCCCBCCBBSBBSSSBSBCBCSCSCCBCSCCCBSCCCCCCSSCCCSSSSBCSBSCBCCBBCCBCBSBBCBBCSCSSBBBSBCCCCSCCBBBBBCCBCCSSBCBSCSSSBSSBCSSSCBSBCBCCSBCBCBBCSBCBCCBBSSBCCCCBBCCCSCBSSCSBSCSCBBCCCSCCBBCBBBCCCCCBCBCCCSCBSSCSCSBCSCBSBBCCSCBBSSCCCSCCSSCCCCSBCBCCBBCCSSBCSCCSCBBBBCSCCCSCCCCBBCSBSBSCCCBCSSSBCCCBSSCSCSSBBCCBBSSCBBBBSSBSBSBBBCBBBSCSSCCSCCSBSBSSBCCSCCCBBCCSSSCBSCCCCBBSSCCCSSBCCSSCCSSCBCCSBCSBBCBCBCSCBCCCCBBSSSCSCSSSCBCSCBSSBCCBCCCSSBBBSSSSSSBSSBCBCCCBCSCCCSSCSBCBSCBBSCSCSCBCBBSSCBCCSBCSBCSBCSCSBBBCBBBCSBBSCCSSSCCBSCBBCCCCBBBBBBSCCBSBBCBBCBSSCCCSSCBSSCBCCSSSSCSSCBBCCCSBCBCSBCSBBCCBCSBCSCBBBBCSCBCBBSBCSBSSBSCCCCBCCBSSBBSCSBSBBCBSCCSSBSBBCSBCSCSSSSBBCSCSSCSBCBCBSSSSSBCCSBSBSSBBCCCSBBCSSCBSCBSCBCCSSBBBBBBCSCSCCCCSCSCSBSCSSSBSCCCBBBBSBBSBSSBBCBBSSCSBCBSSBBCSSCCSCCBCBCCBSBSCCSCCSSCCCSCSSCSSBCBCCBCBSCBSBCSBBCSCCBCSBCSBCCCBCBCSCBBCSSCSBBCBBSBBCBCCBBBBBBCCBCCSBSSSBBSBBCBSCCCCBSBSCSBBCCCCBCCSSCCCSCSBCSBBCSSCSBSCSBCBBSBSCBSSBCSBBSBCBBSCBCCBCSBBBCBBCSSSSBBSCSBBCBSSCCBCSSBSCCCBSBBCCSSSSBSBCCBCBCBSSBBSBBBCSCSBCBBSSSSCSCBCBBCCBBSBCCSBSCBSCCBSBBBSSBBSSBCBSBSBSSBSCCCBCBSBBCCCBBCCSSBBCSSCBCCSBBBCBBCSCCBSSSSBCBSCBCSSBSSBSSCSSSSCBSSBCCCCBSCCCBSSCSCBSBCSBBBSCBCBSCSSSCCCBSBCSBBCCCCBSCSSCBSSSBBSCBSCBCBSCCCBBCBBSCBBCSCBSBBSBBSCBBCBBSCSBBSBBBCSBSSBSCCCBBBCCBCBCCSBBSSCCBSBCSSBBCBSCCCSCCBCSSCSCSSCSSCBCCSBBSBCBBCBBBSBCSSBSBCSBBCBCCBBCSBSCCSSCBCCCBSCSCCBBSBCSBBSSBSSCCBCSSBCSSSSBBSBSBBBSBCSBSBSCCSBCBCCCSBBSBSSCCCBSCBCSBBCBCSBSBSCBSBCCCSBSBSBCBBBSSSCSCCCBSBBSBCSCBCCCCBSSSCCSCCSCSCCSBBCCCCCBBCCBBBCCCBCSCBCBSBSCBBSCBSCBBSSBBCCCCSBSBBSSCBBBBBCBSBBBBSSCCBBCSCCCCBCSCCBSCBBSBBCCBSBCCSBSBBSCSSBBBCCCBBSSSCSCBCBBBBCBBCBSSSCCCSCCBBCSBCSBSSSCBBSSCBSSCBBSBBCSSSSSBBCCBBBBSCCSSBSSSBSSSBSBSSCBCCBSCBBBCCCCCSSCCBCSCBCCCSCSSSBBCSCBSSCBSBBSSBSSCBBBCCSBCCSBCCCSBBBBCBSBSBSSCBBCBCSSCCBCCSCCBSBCCBBCBBSBSSSCCBSCBSBCCBCSBSBSBBCCSCBBBBSSBCBSCSSSSBBBBBCSSBCBSBBBBBBSSSSBBBSCBBBBCBBSBSCSBBCSSCBBBCSSBCCSCCBCBCBCCBBCSCCSBBBCSSBCCCCSBCBSBBCSCCSSCBCBCCBCSCBSCBSCCSCBCSSSSBCSCBBSSSSBSSSBBCBCCBCCBCSCSSCBCBCSCCBBBCSBCCBBBCBBSCBBSCBCSCBCCCSBCBBCSSCSBSSCCCCSCBCSCBBBCSSSCCBSSSSBBCBSBCBSSBCSSSSCCCCCSBBCSSCBCCCCBSBBSCCBBSSCCSSBBBBCSCSBBBBSCSCCBCCSSBSSBSSCCSCBSSBCBSBBSBBSCBCSBSSCSCBCSBSSCCCBCSBCCBSCBBCBCBBBBBCCCBCSSSBCBCSSSCBSSBSBCSCCBBCSCCBSBBCSSCBCCBBSCCCSSBCBCCCSCSBBBBSSSSCSSBBBSSSBCBSSCSBCBBCSCCSBBCSSSBCSBSCBSBSBSBCCCSBSBSCBBSCSBSSSBCBBBBSBBBBCCCBBCSCBSSCBCCCSCSSSSSCCSCBSSBSSCSCSSCCBSBBBCSSBSSCSBCBCSCSBSCCCCCCCBBCBBSCCSBSCBCCCCBCSCCCBCCSBSBBCBCCCCSSBBCBBBBBCCSSBSBBBBSBSBBCCBCCBCCBCCCSCCBCCBSCBSBBBCSSSCBCSBSCBBSCSBCSCBSBBBCCSSCCSBBBBSSBBCBSCSBCCCCSBBBBCCCCSCBSSSSBSSBCSBCBCCBSCSBBCCBCBCBBSBSBBCBSCCBBBBBBCCBSSCBSSSSBCBBSCCCBCBCCSBCCSCBBSBCBSSBSBSCSSCBBCCCSSCSSCSCBBBBBBCCBSCSBSSSBBBSCCSBSSCCBCSCCBBSSBCSSBCSBCCCCBBBBSSBCSSBCBBBSSCCSBSBCBSBBBCSBBBSCSBBSBBSSCBBSCBSSSCCBBCSCCSCBCBCBCBSCSBBSBBCCSSBBCBSSBSCBBBCSSBSCSBBSSCSCSCCCSBBSSSCCBCSSSSCSCSCCCBBBSBSCCCSSBCBSBCSBSSSCCBCCSBSCCSBSCSBCCCSCCCCCBBSBSSCSCSCCBSCBCBCBSCCSCCBSCSBSCSCBBBSCSCSSBCBSBCSSCSSSCCCBBBBBBSBCBSCSBCBBSCCSCCCCCBBBBCBBSCBCCCSCCSCCBBBBBCBSSCBCSBCSBCSSCBCSSBSBCCCBCSBCSBSBSCSSSSCSSBSSBBCCSCCCSCBBCSBSSCBBBCSSCCSCSCSBBSSSSCBSSBCCSCBCBSSSCCSBCBBCSSSSSBBCCSBSSCCCSBCCCBSBBBBBSCCCSCCSSBBCSBCCSSBSSSCSCBSSCBBSSSBSCBBBBCCSBBCCSSSSCBCBSBCCBSSCSBCCCSBCBCBBCCBCCBBBBBCCBBSCCSSCSCBCBBCCSBCCBSCSBBSBCBSBCCCSBSCCBBBSBBSSBBSCSCBCBBSBCBCCBSBBCBCSCBSCBSCSCSSSCSSBSBSSSSSBSCSSSSCCSCBBCBBCBBCCCCCBSCCSSSBSSBCSSSCCBCCCBSBCCSBBSSSCCCSBCSBBSBBSCCBSBBBBBCCBBCCSBBSSCCCCCSCSSBCBSSCCBCSCBBCSSSBSCCBCBCCBCCBSCCSBBSCCBBCBSBCBBBSCBBBCBSCSCBCBSSBCSCCSCBSCCSBBBSSBSBBBSBCCCBBBBSBSCCCCBCCBBSBCSBSBCCCCSCSSCBCSSCSSSBCSCSSBBSCSCBCBSBSSSCBSBSBCBSCSBBSCBSSCCBSSCCSCCCBSBCSSBSSCBCSBBSCCBCCCCSSCCSCSBSBCBBSCCCSSCSCSBCCCBSCSBBSSSBCSBBSSSSBCBSBCSBBSBBSCCCSBBBSSSSBBSCCCCBCBSSSSCCBCCBBSSCCBSCSBBBBSCCBBSSBBSCSBCSCCSBSCCBBSCBSBBBSCCSCCCBSCSCSSCCBSSCBCSBBCSBCCBBBSBBBCCCBBBSBSCBBSCBSSBSBBBSBBBCSSCBCBBSSSCSBCCSBCSCCBBSBBSSBSSBSSCCBSCCSBSBSCCCCBSBCCBSSCSBCBBSSCBSSBCCCBSBSBBBSCSBCSBSCCSBCSSSCCBCBCSBCBCBSBBSBSSBBSBBBSCCCSBCSSBCBBBCCSCCSCSBSBCCCBSSCBSCBSBBBBBBBCCCBBBBSCBSBCBBSCSCBSBBBBCSCBBBSCCCBBCSBCSCCCSCSSCSCCSSSCCBSBBCBBBSCSSCSSSCSCBCSBCCSBSCBBBCCSBBBCBCCSBSSSSBCCCSBBSSCSCSBBCBBBBSBCCSSBCBSCCBCBSSCSSSCSBCSCCCCSCCBCSSCBCSSCSCSBCSCBSSSCBBSBSBSCCCSSSCSSSBBBBBSCBCBBCSSCSSSBSCBBCBBBSBSSBSBSBBCSCBSSBSBBSSBCBCCSBBSCSCCCCCCSCSBBSBCSSBBSCCCBSBCSCBCCSSBBSCSCBSSSBSSSSSSSCSCCSBBBBBSSCBBBSBCCBSBCBBCSBBSBSSSCSBSSBSSSSCCBSBSCCSSSSSBBBSSSBSSCSSSCCCBSSCCSCSCBSSSCSSCBSBSCCBCCCBSCSSBSBCCCSBCSBBCBBBSCBBSBSBSBCSBBSSCBSCBSSSBBSSSBBBBSBBCSBCBSSCBSCBCSCBBCBSSCBCSBCCBCSSSCSSCSSBCBCCSCBBBBBSSSBSCSCBSSSCSCCCBBBSCBSBSBSSSCBBCBBBBBSCCSBCSSCBSBSSSBSSBSCBBSCCBSSSBCCBSBSBCCSCBCBSCBCBBCSSCCSBSBCSCCBSCCCBSSSSSBSCBSBBBCBCBBSBCBSSSCBSCBBSCCBCCCCBBBBSBCBSSSBBCSCSSSBCSBCCSBBCCSBBSBBSBBCCSCSCBSBBCCSCBCBSCCSBSBCCBSCCSCBBBCSBBBSSBCSCSBBBBCCSSCBSCSSSCCSBBBSSCCCCBCSBCCSCCCBBSBSBCBSSCSCBSBSSCBSSCSSBSBBCSBSCSBBCSBBBCBBBBBCSBSSBBBCSBSBSBCBSCSBBCCCCCCCSCSSCSBCSBBSCSSBSBCCSCSCBSCBCBSSCBBCSSBBBBBBBCSBSBSBBBBSSCCCCBSBCBCBCCSSSBSSBSCBBBSSCBSBCSCCBCBBCCBCBBCSCBSCSCCCSBCCBCBSBCBCSBCSCSBSBBBBSCCCBSBBCSSSSBCSSSCBSSBCSCBBSBBCCBBBBBBSCBSCCBCSBBBCSBSCSBSBBSSCBBSBSBSBSBBBBBCBBBSCSBCBSBSCBCBSCCBBBCBSSCBSSSBBBCBSCSBSBSBBBCSCBSBCSCCBCBBBCSCCCBBCCCBCBSSSBBBCSCBBCSBSCCBBBSCSBCSBSBCBBSBSCBBSSSSCBCCSCCBSBSCCBBCSBCCCCSBBCBSCBSSCSCBBSCCBBBCBCSSSSBBBSSBCBBCCSSCBSBSCSCSBSCBBSBBCSCSBCSSBBSBSBCSSCSSSCBSBBCSSBCBSCCSBCBSSCCCBBSSSSCCSSCBCSSSCCSBBSBCCCBSSCSCSBSCSSBSBBSBSSBCSSSBBSBSBCCBSSSSCBBSSCCBSCCBBSBSBCBBSCCCCBCSCCSCSBBBSBBBSBCSCSBCCSBCBCSBSCBBBCSSCSCCCCSCSCCCCBSBCCCSCSBBSCCCCSSBSBBCCBSCSCBBBBSCBBCCCBBBCSBCSSSSBCBSBSBCSBSBCSBBBBCSBCCSBCBBCCSSBBBCSBCCBBBSSSBCSCCCCCSBCBBSSSSSSSCSBSSSBSBSSCBCSCSSSBCSSSBCCCSBCBBBSCBBCSBCBBCSBCSSCBCCBSSCSBSBCSSBBSCBBCCCCCCSCBBCBCBCBSCSCCCCBBBCCBBCSBCCBCCCBBBCBBBSCBSBCCSSCCSCBCBCBSBSSSBBCCSSCBBBBCCBBBCCSSCSSCCBCCBSSCSBSBSSSSSBBBSSBBCCCSBBSCSBBSSBBCCSCBCCBBCBCBCSBBCBBCCSBSSCCSCBBSCBSCBSSSCCBSSCSCCBCSBSBCCCBBCBSSBBSBBSCBCCSBSCSSCCCBSCSBBCBCBCBBBBSBCCSSCCSBBBCBSCCBSCCCSBCSCCBCCBCCBCSCBCSSBBCCBBSCCCSSCSBCSBBCBCSSBSCCCCCSCBCSBBBSCSBSSSBSSBCSSBBSSBCBSSBBBSBCBCBBCSBSSBBSBCCSSCSCBBCCSCSSCCBSSSCCSSSBBCSSSSBBCCSSSCCSSBCCSSSBSCBCCCBBCCBBBCBSSSCCSBSSSBSCBCSSCCBCSBBBBCBSCBBCSBCSBSBBBCCSBBBBCSSBCCCCSBSSBSCCBBCSBSBCSBCSSCBCBBCSBCBCCCBCSSBSBCCBCBSSBCBSBSCCBCSSSCBSSCBSCSSCSSBBCCCSBCBSCSBCBSCSSSSCCSBBBSSBBBCCSSBBBBBBBSBCCSSSBCCBCSCBBBCSCSCCBBBCSSBBCBCCBBCSBBSBSCSCSBCCBCSBCBSBCCBCCBBBCSBSSCBCSSBBBCSSBBBCBSCBSSCBBCSCSCBSCBBCBSCBCSCSBCCBBCBCSBSBBBBCCBSCCCSBCBCSSCCCSSSCBSCCBSCCCBSSSCBSSBCBCCCBCCBCBBSCCCCSCSBSCCSBSCSSCBCCCSCBBSCSSSCCSSCCCSSBBCBCBCCSBSCBSBBSBCSSSCBBCCBSSBCBBBCSBSSCBCBSCCBBCBBBSCSCSBBBBSCSSSBBCCCCBSSCSBBCCSSSCCBSSBSSSBBSSBBSCCSBBSBCCCBCBSCSCBSCBSBSCSSBCSSCCSBCSSSBBSBCSCSCBSSSSCCSSBCSCBCBSCBBBBCCBCCBSSCCCBBBBCBBSBCCBBSSCSSSCCSBBSBSBCBSBBSCBBCBSCSBSSSBBCSBBBBSBSBSCBCCCSSCBCCBBSCSCBCBCBSCSBCCSCSCCSSSSSBBCBBSSBSSSCCCBSSCBCCBSCCSCCCBCSBBSSSCCCBCSSBSBCSBSBSBCBBSSSSCCCSSSCBSBSSSSBBBCBBCSSSBSCCBSBSSBCCSCSBCSBCSBSBBBBBCCSSBBSBCCBSCSCSSSCBSSCSSBCCBCSSSSSBCBCBSCBBBSSCCBSSSBCSSBCBBBCCCBCBCCCSBSCBSSSCSBBBBBCBCBBSCBBSCCCCBCCSBBBSBCBBCBBBBCBBBBSCSSSCCBSBCCBBCBBBSCBSCCSBBSBSCSCCCSCCBSCSCBCBBCCCBSSCBCCSSCCBSBSCSSBSSBCBBCBSCBSSCCCCBBBBCBBSBBBBSSSCBBCCSCSSCCSBSSBCCCCCSBBSBSCBCSBSSCSCBBCSBCBCSSCCBCBCBSBCSCCCBCSSSCCSCSBCCSSCBBBSBSBBSSCSSBCBCCSSCBCSBSBCCCBBSCBCSBBSCCCCSCSCBBCBBSCCBSSBCSBBSBCSSBBBBBBBSBCBSBSCCSSSCBSSCCBCCSSBBCSSCBSBSCBCCBBCCSBCCSCBBSSSCSBCSCSSCCCSSCBBSSCSCCBBBBSBSCCCSCCBSBCSCBCSBBBBBBBCSSSSBSCSSBSCBCCBCSBCBBSCCBSSCBSSCCBBSCSCSBCBSCCCCBBBSBBCSCCSBCSCCCCBCSSBSCCBSBSSSCBSBSBCSCSCCSCCCBCCSSSBCBSCBCCBSBBCSCBBBSBCBBCSBCBCBBCSSCCBSCCCBCCSSBBCCSBBCSBSSSCBSBSBCCSSBBCCSBSBCCBCSCBBSCBSBSSBSBCCBCSCBCCBCCBCBBCBBCSCBCCBSSCCSCBSSSBBSCBBSBBBCCSSSBBSSSSCBBSBSCSSBSCSCSCCBSSSCBSCBSSSBCCCCBSSSSCSCBSSBBBCBCCBSCSCCBBBSSBCBSCBSBCSCSSBBCBSBBSBBBBCSSSSSCSCBCBCBBBCSSBSCBSCSBBSBSCCCCBSSBBBBBCCSCBSSSSBBBBCCBCSCCBSBCSCSBBCCBSBCCSBSCCSCCSBBCSCCSCCBCBSSBBCBCBCSSBBSBSSSBBSCCCSSCBSSCSSBSSBSBCSBSSBSBCBSCBCSBSSCBBSBSSCBSSCBCBSCCBSSSBBSBCBBSCSSCCBSCSBSBCSBSSCCCBSCCSSBCBSSCSBCCBSBCSBCBSSBBCSSSCBBSCCSCBSCBBBSSBSCCCBCBBBCSSBBSCSBSCSBSCBSSSCSBSBSCBCCSCBSSCSBCCSCCCBCCBCCSCSBBSSCBCBBSSBSCCSBCSBSSBSCSBBBBBCBCSCSBCCCCSSSSCCCCSCBCBCBCSBSCCCBSSSCCCSBCSCBBCCSBBBBCSCCSCSBBSBSBSSBCCBCSBBCCCCBSCSBBCSBBBCSCSCCCBBSCCCBSCBSCSBCCBCCCBBSBBSBBSCSBSBCBBBCCCCCSBCCCBBSBBSBBSSBSBBCBCCSCSCCCCCSSCSCBBCCCSSSSCCSCCCCCSCBCCBCSSSCCCBSSBBCSBCBCSCCBCSBCSCSCBSBCSSSCBCBCBCCCSBCCCSSCCSCSSCCBBBBBBBCCCCCSBCBSBCCBBSBBCCCCCSBBBBCSCSCBCCCCCSBBSBSCCBCCCBSCCSCBBSSSBCSBBCBBCSSCBBSBSBCSBSCSCBCBBCCBCSBBCCCCSSBCBSBBBCSCSBBCBSCBCCSSCSCBSSSBSCSBCBSCBSBSBSBSBCCCSCCSBCCBCBCBBCSBSBCCCBSCBCSSSSCBCCSSSSCBCSCBCBBCBCSSBCSBBSCCSSSSBSSBBBBCCSCSBCCSCBBSCBCCBBBBSBSSSBCSSSCCCCBCBSCCCCSCBBSSBBSBSCSBBCCBSCCBBSBSCSBSBBSSSBSCCCCSCSCBCCSSSSBBSSBCSSSCSSBSBBCCBSSBBCCSSBSCBBBBCBSBBSSCSBCSSCSCCSSBBCBCCBSSBCCCSCCSBBSSBCBCBSCCBBSCCBCBCSSCCSSCBSSSBSSSBBSBBBSSBCBBCSBSSSSBCCSBCCSSCCSBCBSBCSBBSSBBBBBCSSSCCSSBBSSCSSBBSCBSCCCBSCSCSBSSCSBSBSBSSSCSSBCBCBSSSSSBSBSBSSSBCBSBSCCSSCCSSBBCBBSBSCCCCBCSBSBBSBSCBBSSCSCSBSCSCCSSSSCSSSCCBBBSSBBBSBCBSCCCBBSBSBCCSSSSCCCCCBBSCBBSCSBBSSCSBBCCBBSSBSBSCSBBBCSCCCBSSBCBBBBSSSCBCCSBCCSBBSSBCBSCCSSCBBBBSCSCSCSBSSBBBBBBCCBBBCSSCSCCCSCCSSBBSCBCCCSCSSBSBCSCCCBSSBSBBCCSSCBCBBCCCSBSBCBCBBBCBBSSCBSSBBBSBBSSSCCCCBCCCSBSSCBCBSCBBCBCCSBCCCBCSBCSCBCCBCBBBSBSBBCCCCBBCSCSSBCBBBCBBCCSBSSCCCCSCSBSCCSCSCCCBCBSSCBBSSBSSBSCSCCSBCSCSBSSBBSSBBBCCSBBCSCSCSSBSBSSCCBBSBSBCCBBSBSSSBBBBCSBCSSSCSCBBSCCSCSBCSBBBBSBCSSBCCSCBBCSCSCSBCSBBCCCCBSCSBBSBSSCBSBSCBBSCCCSSBBSSSBCBSCCSSCCCCBCBBBSCSCSCSCSCSCSCBBSSSSSCCBBBSCCCSBBBBBBBSCCSSBCSBCCSSSSSSBSCBSBBSBSSBCCSCBBBCCCCBCBSBSSCBBSCCCSSCBSBCBBBSSSSBSBSCCSCCCSSBCBBBBSCSSBBCBBSCCCBSCSCCBSCBCBCBCSCBSCBBSCCCBSCCBCSSSSBCCSBCBCBCSCBSBSCBSBSBSSSSBBSSCSBBCBBCBBSCCBSCSBSCCSSBBBCBCCSBSSBCSBCBBBBBCBSSSSCBBSBCBSCBBCBSBCBBBCSSCCBBBSSBSBBSBSCSCBBCSCSBCCBSCSCSBBBBCSBCCBSBSCBSSCCCBCSCBSSBSBCSCSBSCCCSBCSCSSBSSBSSCBCBBCCSBBSBBSBSSSSCBCSBBCCSBBSCSSBCCSBSCSBBBSSSBBBSSCSCSBSSBSCCSBBSSSBSSBCSCSBCCCBBCSCSSBSSCBSBBBCBBCBCBSCCSCSSCCSCSCCBCSSSSBBBBCSBCBSCBSCSCCCSCBSCCCCBSSSCBCBCCBBCCCSSBBBCCBSBSBCBSBCSBCCBCBCSSBBBBSBSSCCCCSSCCCCCBSSCBCSCSSCCBCSBSSCCCBCCCBSCBBSSBCCBCBSBBCBCBCBSSSSSCCCCBBCBBSCBBBBBBCSCCBSSSSSSBBBCSBSSSSCBCBBCSBBSSSBCCCCCSSCCBSCBCCSSBBSCBSSCSBBBSSBSBSSBBBSSCBCSSSCCCBBSSCBCBCSCCSCCBBCBBSSCBBBSCCSBSSSBSCCSBCBCBSCBSBSSCSBCSSCBSBSCBBBSBCCCBSBSBBSCBCBSBBSBBSCSSSSBBSSSBSSBSBCCBCBCBCBCCCCBSCCCSBSCCBSBCBSSCCBSBBBBCCCBCCCSBBBBCCCCCSSBSBSCCBCCBBSSBSCCBCCBCBBCSSBBCBBBBBBSCSSSSSBCSSSBBCBCCBSSSBSSCBCCCSSSBBSBCSBBCSSSBBSBSBSCCBCSSCCSBBBCCBBCBBCCSSCBSSCBBCSBBBSBSCSSBBBCBCCCSBBSBCCBCCBSSCCCBBSCSCBBCBSCSBSBSSBBCCCCBBSSSBSSSSCCSCCCBSCCCBCBBBCCBSCSSBBSSBCCSCBCSSBSBCSSBBBCCSCCCCSCCSSBBCBSCCBBSBCCBCSCSBBSSBSBSSBCSCCBBBCBBCSBBSSBSSBCBCCCBSBCBCBBSBCSBSCCCSBBSCCBSCSBSSSSSCSBBBCSCBSCBSBSCSBBBSBSCCSBCSBCBSBSBBBSCCBBSCBCSSCSBCBBBSSBCSSBSBCBSCBBCSSCBSBSSCBBSCCBBSBBSCBSBSCBSSSCBCBCBSSSBBSBSCSCCSCBBCBBSCSCSBCBBCBCSCCBCSCSCCBSCSBCBCCCCBCSCCCSCCBCBBCSCCCCBCBSCSSBSSCSSSSCCCSCCSBCSCCCSCBSSSSCBCSCCSCBBBSCBSCBCSSBBBSBBCSCSSCBCBBSSSSCSSCBBBCCBCBCBBBSSCSBSSBBBSBSSCCBSBBSBSCCSBBSCSBCCCCBCBBSBSSSCSBSSSCSCCCCBSBCCSSSCCBSBBBSSSCCCCCCCBCBSSCSCCCBSBSSSCSBCBCSBBCCBBCCSCBSCSSBBBCSBCCCBBSBSBBSBCBSCCCBSCCCSBSSCSSSCBBSSBBBCBBCSCCBBBCSSCBCBSSSSBSSCBCSBCCSSSBCSBSSSBCBBBSBSBSBSSSSBSSSCCCSSBSCBCSSCBCCCCSCBSCCSCSSBCSCBBBCBSCCBCBBBSCBSBCCCBSBSCBCSBBCSCCCBBBSCSSSSCCCCSCCSBSSBSSCSBSBCSBBCBSCSSBCSBCBBCSSCCSSCBBSSCCSSBBBBBBSBSCSSSBSBSSSBSSSSBCCSCCSSCBSBBSSCCBBBSCSSSSBCCBSSBSCCSSCCCSBBBBSSCSSBCCCCSCBCSCBBCCBSCBBBSSCSCBCSSCBBCBBBCCCSCCBSCBCBCBBBCSSCSSSBCBBBSSCSSSSBCCBSCBSCCSBSSCCSSBSCCCBSCSBSSBCBBSCCSSBBBCSCCCCSSBSSBSSBSSSBSSCCCSBSBCSSBBBCCSCSSSBSCCCSBCBCSBCBSCSBCBBCCBCBCCSBBCBCCBBBBSCBBBBCCSSSSCSBBBSCBBSCCCCBCSBBCBSBSCBSBSCCSBBCBSCBCCSCBBBCSCSBSBBCSBBBBSBBCBCCBBCSCSBSCBSBSSBCBBBBCSCSCCBBCSSSBSSCCCBBCBBCSBSBSCBSCCCSBCSCBSSCCBSBBBSCSSCCCBSBCCSSCCBCCSCCSCBBCSBBBSCBCBCCCSBBCCSSSCCCBBBSBCSCBCBSCCSCSBCCCBBCSBBSCSCSSBBBCCSCBSBCBBCBSSSCSSCBSCCCCBCSCSCSSCSCBCCBCSBCSCBCSBCCSCBBBCBBBCCSBCCCSBCBSBSSBCBCCSSBSCSSCBBSCBSSSSSBBCBBSCCBBCBBSBCSBCBBCSCSSSCSSBCBSCBBCCCCBCCCBSCSCBSSSCBCCCBSCSSSBCBCBSCCCSCSSSSBCCBSCBCSBSCBBBCSCBCSSSBBBSSBSBSSCCSBCCBBSBCCBSBCCBSSSSBCBSSBCCSBBBBBBSCCSCCSBSBBSBBBCBBCBSBSCCSBCBBSSBSSBCSCBBBBCBCCBCCBSBCSSSSCCBCSCSCBBCSBBBCBBBBBSSCCBCCCSBBCBSBBBCSBSBCSBSSSSBCSCCSCBBBSCCCBSSSCBCBBBSSCSSCBSCBCSBSBSSBCCSCBSBBSBCBBSCCSCSCSCSCSCCSBSCSSSCBCCSSBCCSSBCBSSBCSBSBSBBBCCSCBSBBBBCBCBBSCSCBCCSSCCBCCBBBSSBSSCSCSCCBBCBCCCCSBBSBCBSCSSCBBCCCSCSBCBCBBSBSSCCCSSBBSSCSBSSCBCSSBBCSCSCBSSSBCCBCSCCSSBSSBBBBBBBSSSCSSSCCBCCSBCCBBCCSSCBBBSBBCBSCSCCBSBCSSBSBBCCCSBCBSSCCCSCBCCCCBCCBSCBSCBSSSBSBBSCBSBCBSBBCCCSCBCCSCCSSCCBSCBSSSSSCSBBBBCCSBBCCSCCCBSBCCBBBSBCBCBCSSSBCSCBSCCSSCCSBBCSCBCBSSSSSCBCBBBCSCCSCSSCBSSCSSCBCCSBCBBSBSCBBSBBBCBCCBSCCSSSCBSBCCBSBSSCBCSSCBCSSCCBSCBSCBSBSSBCSBSCCCSSSBCBSSCBBSBBSBSBBSCCBSSSSCSSBCBCCCCSCBBCSBCSSBSSCBBSSCCSSBCBSCSSSBSSBBCBSCSSCSCBCCCCCSCSBSCBBBBCCBBBBCBCBSCCSSSSBSBSBBBSSBBSCCSCCBSBCCCBCBCSSBSSSSCCCCBBSSBCBBCCCSBSSCCBCSCCSCSSBBCSSSSBBSCBCBBCBSSSSBBBCCCSCSSCBCCBCCCBCSSBSSBCBSCBBCSSSCCSBCCBCSBCCCCBCCCSSSSCCBBSBBBSBSCCCBSSCCSBCCBSBBSSSBSCSSBSCBSBSSCBSBCSCSBSSSBCBBBBBBBCBSBCCSSCSCBCCBCBSSSCCSBBSCCBCBSBBCSBCBCCSSCBCBSSSCBCCCCCBSSBBSSBSBCSCBSSCBCCCBBBCBBSBBCBSSCBSSCCCSSBSBCSCSCBSCCSBSBBBCCCBCSBCBBCCCBCSSCBSCSCSBCSCBCSCBSCBSCSSCCCBCBBSSSSBSBBSCBBSSCSCSBBCCBBBBCBSCBSSCSSCCBBBBSSCCSBSBCBCCBCSBBBCSCSCSCSCCBSBBSCSBBSBCBBBCBSCBCSCSBSCCBCSBSCSSSBBCBSSBCSCSSBCBCCBSSCBBSSCSBBBSBBCCBSSCCSCBCSBBCBSBCSCBSBBCBBBSCBCCBBBSSCBCCCSBBBCBBBCSSBBCCCCBSCBBCSSCCCSSCBBBBCBCCBCSCSBSSBSSSCSBCCBSCBSBCSSCBBSCBSSBSSCSCCSCBSSBCBBBCBBBCBSSCCSCCSBCBCSBCBSCSCCBSBSCBSBSSBSBSBSBCCCSSSBCCCSBCSBBBCCSSSCCCSSSSBBBCBBBBCSSCCBBCBCCSSCCBSSBCSSSCSBBSSCCBCSBBSBCBCBCBBCCCSBSCSSBCCSBSBBBBSBSSBCSSSCCSSSSCBSBBSSCCSCCSBCSBSSSCBSSSCCCBCBSSSSCSSSBBBSCBSSSCCCBSSCSBCCSSCSBBSCSBSSSSSBCSSBSCCCCBSBSCCCBBSSBBCCCSCBBBBCBBCSBSBCSBBBBSSCBBSBCBBCSCBBCCBCSSSCBSCCCSSSCSSCBBSCBCBBSCSBBSBBSSBCBSSCSBSSBBBSSSCBBSBSSCSCSCSCSBSCBCCBCCBCCSBCCCSSBCBCCCCBBSCCCBCCSBSSSCCSBBCCSCBBBSCSSCSSCCCBCSCSBBBCSCSBBCCCSCCBSCCSBSSBSCCSSCBCSSBCSBBCSBBCCSSCCCBSCBSBSCBCCCSCSCCSBCSBBSSSBSBBCBCBBCBSBSCBCSCCCSCBBBSSSBSBSSCSBSBSBCSSBSSCBCCSSSSSBCCSBCCSCSBCSBBBSCBCCCCBBBCSBSSCCSBBCSSCCSSCBCCCCBBBSCBSSCBSSBSSSSSSCSBSCBSBBSSCBSCCBCCCCCCSSBSSBSBSBSSCBCCSCSCCCSBCBBBCBBBCBSBCSBCBSBCSSSBSSSCCBBCSSBSCCBCCBCCCCCSBCSSBSBBBCBCBBBSCSCCSCCBCBSSCSBCSCBBCBSCSBCCCBCCCCCBBCBCCBSSBCBBCSBBSBBBSCCSSSBCSBBCCBSCSSSCCBSCSBBSSSBSCSBCBSSSBCCSCCCBSBCSCBBCCSSSBCSCSCBSSSCSSBCBCSSSBBBBSCBCCBBSSBSBSBSCCCBBCBBBBSSBBSBBSCCCCSCCCCBSCBCSSBSBCCCCBSBBBSCSBCBBCSCSSCSSCSCSSSSCBCCCSSSCBCCBCCBSSSBBSSCSBSSSBSCBBSCCSCCSBBSCSCCBSCCSSSCBSBBSBCSBCCCBCCBBBCSCSCCCCBCBBSBBSBCCBCCCBCBSSBBBBSSCSBCSBCBBSCCSCBCCCBBSSBSBSSCBSBSCCSBCBBSSCBCSSSBSBSBCBBCBSCCSSBSSBSSSBCCSSCSBCSSBBCBCSBBBCCBBSCSSBSCCBSCBCBBSCBSCBCBBBBBSCCBBSSCBSCSBSSCBCCSBSSSCSCBCBCSSBSBCSBBCSCSCCCSSCBSCBSSSSBSBBSBCBBSBCCBBCCBCBCSCBBBCCCSBBBSBCBBSBCBSCBCSSBSCCCSBBSSCCBSCCCCSSSBBSCCSCBCCSSCSSSBBBCSBCBBCBBBBSSCCBCSBSSBCSBSBCSBCSBBSBCCSCSSCSSCCSCSSSCSCSCBCBSBSBBSSCBBSCCCSSSCSCCSSBSBBCBBCSCCSBSCSCBCCCSSCSCCSBBSBBCSSBCBSSCBBSBCSBSSSCCBBCCBCSSCBSCBSSCBBCCBBBBSBCCCBSSSBSBBSCBSBCCBBBSCSSCCSSCBCSSBSCBCSSCBBSBBBSSSSCCBBSSCBBBSCSCCBSBSCCSCCBCSBBCCSCBCSSCBSBBCCSBCCBCSCBSSBSBCBCCBSSBSBCSSBSSBCCBCCSBSCCBBSSCBSSSBCBBSCBBCCBCSBBBBSBCBBSSSBCCSBBSBSBCCSCSBSSCCSCBCSCBCSSCBSSSCBCBSCCCCBSBCCBSBSCBSSSSSSSSBBBSBSCBBCSBBSSBCSBBBCBSSCCSCBSBSBCCBBSCSSCSSCSBCCSCSBSSSBSCSBSSBSSSSSCCSBSBSCSBCCSBSSCCBSCBSBBCSCSCBSCSBSBSCCSSCBSSCBCSCBBSCSBBBCBSCSBSCBBCBSSSBCSBCCSCCSBBBBCCCBSCCSCSCCBCBSBSCCSSSCCCCSSSCCSSSSBSSSCCSCSSBSSBBSCCSBCSSSSCSCSCSBCSSCCCSSCCCSBSBSBBSCCSBSCCBSCSCBBSCBBBSBSCBSBBCSBSSSBCSBSCCSBSBBCSCBSBCSCSBCCBBBCCSSCSSBSSCSCCBCBSBBCSCCSBCSBBSSBCBBSBBCBSCSBBSCCCBBCBSBCBSCCBCBSBCSSSCBCCBCSBSBBCBCSCSSSCCBCCSSBCCCBBCCCBSSBSSSCBCCSSSBCCBCCCCCBCBCSCSSCSCCCBCSBSCCCSCBCSCSCBBCSBCSCBSCSBBCCBSCBCBSSSBBCSBCSBCCCBBCSSSSSSSBBBBSCBSCSSBBBCSCSCCSSBSCCBBBCCCBBBBBBSSBBCSCBCSBSBSCBCBBBBSSBSBSCCCCSBSBCCCCSBBCCSSSCCSCSSSBCCCSSSBSSSCCSSSCBSSBSBSBSCSSBSSCCBBBBSCSCSCSSCCBBSSCSBBCCSBCSSBBBSBSSCBSSCSSBBCBCCBBBCCCBBCSBSBSCBCBBBSBBCSSCSCSCSBCCCCBBBBCBBCCCCSSSBBBSCBCCBCSCBBBBCCSCCCBCCSCSBBBCSBBSCSSBBBBSCBCBSSBBBBBCSSSBBBBBBCBCCSBBSSSBBSSSCBSCCBBBSSSCBBBBSSCBBBCBSBCCSSSSBBSCCBCCBCSBCSSBCCBCSBCSCSBCSCBSCSSCSBSBBSBSBSBSSBBSCSCSSCSBBBCCSSBCSCBSBSSBSCSBSSCCCSBSBCCBBBSSBSCCBBCCSCCSSSSCSBCBSBCCSSCCCCSBSBSCCCCBBCSSBCSBCSCSCCBSSBSSCBCBCSBSSCSCCCSCSCCSBBSCSCSCCCCCCSCCSBSBBBBBCBCSSCBCBCCSSCBCSCCCSBCBSCBCBSBCCBCCCCBSSCSCCCBSBSCBCBBCSSCBCBBCCBBSCBCBCSBBSCCCSCBSBCSCCBCBCCSBCCCBSSCCSSSSBSSSBSCBCCCBCCCCSBSBBBSCCBBBBCCCBSSBBSSBSCCBSSSBBCBBCSBBBCBCCSBBCCSCCBCBCCBCSCCBSSCCSCBBBSBSBSBSSCCCSSCCSCCCSBBBCSSCBSSBSBSSSBSCCSBCSCSSCSBBSBBBSSBBBBBCBCSCCBBSSCCSBCSCBCBCBCBSBSBSCBBCBCCBBSSCSSCBSBSBSCBCCSSCCSCSSCBBSSBSBCBCBSCCBSCSSSBBCBCSSBCSCBCSSCCCCCSBSBCSSSSSBBCCCCCSSSBCSBBSCSBSBSSSSCSCSCBCSCBSBBCBCCSCBBSBCBSCCSBCCCSCBCBSBBCSCCCCSBSBCCBBBSSBSCCSSCBCCSBBCBSBBBCBSBBSSBCSSSSSBCCSCCSSSCBCSSSCBSSCSCSSCSCSSCCBSBBSCCSBSCBCSCBSCCSSSCBBBSSCBBBSCCBCBBBBBBCSSCSSBBBCCSSSSBBSBCCCCSCCSBSBCSSBSBBCCSCCBCBBCCBBCCCCCSSCBCCBSSBBBBSSBCCSCCCSSBSCCBCSSSCCCBCBCCBBSCBCCSCCBSSBBBSCSCCCCBBSBCSSSBCCCCSSSBBBBBCSCBSSBSBBCCBBSSCSCCSBBBSCBSCCSCBBBCSCBSBSBCBSSSCCBSBCCCBCBBBBSBBCBSSCCCCSBBSCCCBSBSBSSSSCCCBBCBCCBBCSSBSCSSBSCBBBSCSBBCBSSBBCCCCSSBSSCBBCSCCCCSCSSCSCBBCSSSBBCSSCSBSBSCCSBCSCCBBBCSCSSSCCBBCCCSCCBSCSSSSBSSCCCCBSSBCBSCCBSCBBCSSCBCBSSSBCBCSBCBBCCSBSCBBSCBCBSBCBSSCCBBCCCBBCCSCBCCBBCBBSSBBSBSCBSSCBCCSCBBBCBSBBBSCCSBBCSCBCCCCCCSSBCSBBBSSBSBCBBBCBBCCBSBCCCCBSBSCBSBCBCBCBCSSSBSSSCSSCSSBBBSSSSSCSBBBSSCBSCSBCSCSBBSSCSBCCCBCCCCSSCBCBCCCCCBSCCBBSSCBBSCSSCBCCCSBCCSSCSCBBBCBSBCSCBCSBBSBBCSBSCCSCSSCCBCSBSCCBBBSSSSBBBCSBBCBBSSCSBSCSSSSSSSSCCBSSCCSSBBSCBBCSBCCSSCSBSSCBSCSCCBSCBBBSBBBSSBSCSSBCSBBCCBSSBSSSCSSSCCCBBSCCSBSSSSSCSBCBSBBCBBCSSBSSSBSBSSBCBSCBBCCCSBSSSSCSSBBBBCBBBSBBCCSCCBSSSBCCCCSSSSBBBBSSBCBBSCSBSBCSCSBCBSSBBBCBCSSCSBCBSCBSBSCBCCSCSCBBCBSCSSSCBCCCCBCBCSCSCSSSSCSCSSBSCCSBSBCBCSSSCCCCCSSBCCCBCSCBCSCSCCSCSCCCSBBSSSSCCBBBCCSSBSCBCCCBSSSBBCBBCSCBCBBBSCSBCCBBSCSBCBCSSSSCBBCSSCSCCSSCCCCBSSBSCSBBCSBSBCCBSSCSBCBBBSSBSBCSBBBBSSCBSBCSBSBBBCBSSSCSSBCBBCCCBBSSCSCCSBBCCSCCSCBCBBCSSBCBSSSBCBSSCBCBBBCSCCBBSSCBCSBBBSBCBBBCBBCCBBCSSCCCCSSBCSCCBSBBCBCBCCCCCSCSCBBSCBCSSBBBCBBSSCSCCBCSSSCSBCCSCSSSSCCBBCCSSSCSBSCBBSCBBCCSSBCSSCCCBSSBCCCSBSBBSBCBSSSBSCBCBBSSBSBBBSBBSBSSCCCSSCSCBCCCCBBCCCSBSSBCBCCSCSSCCBSCSBCCCBSBCCBSBCSBSCSCBSSSSBBBBSSBSBSSSSSBCCCCBCBCSSSSCCBCCCCCSBSSSBCSSBCSBCCCCSCSBSCBCSCBBCCSCSSSBSSSBCCSCCCBSSCBBSSSCCCSCSBBCSSSSBBBCSCSCSSBSCSSBBBSBSCBSBSSBBBSCBSBCSCBCCBSBSSSSSSSCSCCBCBBCBCBSSCSSCSCSBSSSSCSSBSBCCCCBBCBCSSBSCBBCBSCCCBCSCSSCBBCSBSCBBCCSCBCCSSSCSBBSSSCSBCCSBSSBSCBSCSCCSSSCSBSSBCCSSCBBSSSCBCCCSBCCSSCBSBCCCBCSCBCSBCCBSBCSBCSSCSSCSSSCSCCSBCCBSSBBCBSCBCSBBSSBBBCCCSBCCSSCBSBSCBCSBCCSSBCBCBBBCCBBBCBSSBSBBCCBSBSSSCBSSCCBCCCSCSBCCCSCCCSSCCBSCCCSBCSBSSCSCBSSSCCBSSSBCSBSBCCBSBSSCSCBCBCBCSSBCSCSCCBSBBBCSBBSBCCBSSSCSCBCBCCCBBBCSCSCBCCSCSCCCBSSBCBCCSBBSBSBCCSBCCSSBSSBSCCCSSSBCBBBCSCSBCBSSCBBBBBBCBBBSBSSCSBSBBSCSCSCBCCBCCSBCCCCCCCCBBSSCBBCBBCBCCBSSCBSBBSCBSCSBCCBSCCSBCSSSCCSBSBSBCSBCBBSSBSSCBBBCSBSSSSBSBSCBCCSCCBSSCBSBCBBSCBSSBSSBBSBSSSSSBCBBSBSSCSSBSSBBSSBBSSBSBSCSSBSCSSSBSBSCCSSSSBBBCBSBCCSBBCBSCCSBSBCSBBCCSBSBCCCCBCSSBSBBCSSSSSSCSSSCBBBBBCSSCSCBSBCCCBCSCCCSSBCSSSCBSCCCCBSBCSBBBSCSSSSCSCCSBCSCSBBBBCCBCBCSCSSBBSCCSBBCCBCCBSBBCCBSSBSSCBBCSSSSBBBBCSSSCCCBSBBSCBCCCCSBSSCCSBBSBBSBBSCSCCCSCCBBCSSBCSCSCSSCSSBCCSBCBCSCBSCCSBBSCCBCSBCBCSSBCBBBSCSCCSBSCSBCBCSSBBSCCCSSSCBSSSCSCCCBCBSCSCBCCSSSCCBCCSCBSBCBBSCBBSBCSCBBCBSBSCBBSSBSBBSCBBCBCSCBBCCCCSCSBSCSCSSSSBBCSBBCSSCSBBSSBSSCSCSBCCBCCSCBBSCCBSBSCSBSBCCSBSSSCSBBBCCCBBSSBBCSBBCSBCBSSCSBBCSSCSCSSBSSSCCCCCSSSSSBSSCBSCCBCBBCSSSCBBCBSBSCBCSBBSSSSCSCBCSSSSSBCBCCBSSCSBCCSSBCCCBSCSSCSSSCSSBBSSSBSCSSBSSBSCCBCSBCCSSSCCCSBBCBCBCCSCBSCBCBCBBBBSBCCBSSCSSCCBCBSBSBBSBBCCSSBSBSSBSBCCBCBSCBSBSCSBBCSCCSCBCSSSCCSSCCCSBCCBSBCBCBBCSCSSSSSBSSBCBCBSSCCSCBSBCCCCSSSCCBBBSCCCBCBCBCCCSCBBSBSCCSSBSCBSBBCCSBBCBCBSSCCCSBBCBBCSCSCBCBCCBCCSBSCBBCSBCSSSSCBCCSSSBSBBCSBCSBBSSSSBBCBSBBSCCCSSBBCBCSSSBSBBBCBSBCSCBSBSBSSCBBSBCCSBBCSBBBBSBBSBSSBSBSBCBSCBSSSSBCSCSSSSBCSSSBBBSCCBSSSSCCBSSCSBSCSBBBCBSCSCCBSCCCBSCBSSSBSCBSBBBBBBCCBCSSSBBBCBCCSBBBBBCSCSBBCSSBSSBSCCBBSBSCBSSBSBBCSBCBCSCBCSCSSBCSCCCCSCBCSSCSCCSSBBBSSSCBBSCCBSSCSBBCBBBBSBSBCCSBBBBSCBCCSBBBBSCSBBCCBSSBCSCSCSSBCBSCCBBBCCBCSCSSCSBBSCCBCCBBCBBBCCSSSBSSCCBSCCCBCCSSBCSCCCBCSCBBCBSBBSSSBSCCBSBBBSBBBBBSSCSCSSSSSBCBCBCSSBCBBCBBCSSSCCBBCBCCCCBCBBSBBSSCSBSBBSSBCBSBSBBSCBBCCCBBBBCSCBBBCBCBBCSBBBCBSCBCBSCSCBBSSBCBCCCBSSSCSSBSBBCCCBSCSCBSCSBSBSBSCSCSCSSBCCCSBSSBCSSBCCSCBSBCCSBBCCCCSBSCCBBBCSCSSSCCCSSBCBSBBSCSBSBSSSBBSCBBCSBSCSSCBSCCSSSBCSCBSSCCSSBSSCBSCBBBSBBBBSBBSBBCBSCSCBSBSSCBBBBBBBBBBSSCCSCSCBSSCBBBCSCSCCSBCSBBSBBSSBBCCSCCCCSSBSBBCSSSCBSCBBCBBSSSBCSSCCCSBBBBBBCCCBBSBSSSBBBBBBSSSCCSCCSCBCCBCSBSBSCCCCBSCCBSBSSBSCCSCCBCCSCSCBBBBCBSSSBSSSSSSBBCBBBSSBSCCBSBSCCSBCBBCSBCBCSSSCBSBCSBCCCCBBCSBBCCSSBBCBSSSSSBSBBCSSBSBSCCBBBSSSSCCCCCBBBCCBBBCCSBCSSSCSBBCBCBBBSCSSSCBBCSBBCBCBCSBCBCSCBCBCCSCCCBSCBBSSSBCCCBCBCBBCBSBCCCSBSBCCCBCSSCBCSCSSBCSSCCBCBSSCCCBSSSBBBSCCBSCSSCBBSBSSSCBCCBSSCCSSSCBSCSCCCSBBCSBSSBSCSBSBCSBCBCSCBBSSBBSSCSBSBCSSCCSBBSBSBCBBBBCCSCBBCSCBSCSSBSSSBSCBCCSBCCBBCCBBSSBBSBCBCBBSSSBCBBBSBCBBSSSCSCSBCCBBBCCSBCBCBCCBSBBBBSCBBCCCCSCCBCSCSCBSCSBBBCSCBCSCSSSCSCSBCSBSBBBCCSCCSSSBBCCCBCSBSCCCSCCSBCBBBSBBBBSSSCBBSCCSSBCBSBBSCSCBBCBBSBCSBSCSCSCBCCSCSBBBBCBBSBSBBSCCBSCSCCCBBSCCBSSBCSBSCCCCCCBBBSCBCBBBSCSSCBSSCCSBCSCSBSSSSCBCCSCBCSSCBBBCBCBSBCCBSCSBCBSCBSBCSBSBCBCBBBCBSCSSCBCCBCBCBSCSBBBSBCBCCSSBCCCCSSSCBCBCBCCSCSCCSSSCSCCBBBCSBSCSBCBCBSCBSSCSCCSBBBCCSCSCSSCSSCSSBBSCSSSBCSSSBBSBSSCCCBBCSBSBSSSCBBSSCCCBBCCSBBCBCCCCSSCBSBBSCSCBSCSSCSSCCBBSCBBBCCCBBCBBCBBSCSBSSBSSSBSBCBCSBCSSBCSBCBBBCCBSSBSCCBSCSCBSSCBSBCCCBCCCSBBBCBCCBCCBCSCCSCCBCSSSCBSCSBSCBBSCCSSBBCSBBSSBSSBCCSCCCCSSCBSSCCBCCBCBCSSCSCCCSBBBCCCBBCCCSCBSBCSCSBBCCCSBBBCSBSSBBBCCBCBBSSBBSSBCBSSCBSSSBSBBBSBSSSCBCCSSCCSSBCCSSBCSBBSCSBBBCCCSBBBCBSCBSBSCBSBBSSSCSSSBSCSSCBBSCBBSBCSBSCBBCBSBBSCCSSCSSCCSCBCCSCSCBCBBBSCBBCBSCBCCSCSSBSCBCSCBSBBSBBSSCBSSSSCBCBSCBBCSSCSBSBBBCSSSBBBBCBBBSCBCBSCSSSBBSBBCCSBCSCSBSBBBCSBCSBSCBCCCCCSBCSBCBCCCBBSBBCBSCCCBSSCSBSSBBCCSBSBCCBSSSSBCBBSCCBCCSBSSBSBBSBSBBBCCBSBSSCBBBBSSSSSBCBBCCCBCCSBCBBSBBCSBSBCCBSBCSBCSBBBSCCSBSSCSBCBCCBSBSCSCSSSSSCCSCBCSSBBCSCBBSSSSCSCCCSCBBBSBBSBBSSCBCBCBBCBSCBSSCSBSBBCCBBSSCCCBSSSBCSBBCSCBSCBSCSSCSSSSBBCBCBCBSSCBSCCBCBBBCCSBBBSCCSSSSBCSBSSBBSSBSCCCBBSSBCCCCSSCCCCSBBCSBBSCCCCCCCBBCSSCSBBSCBBSBBCCBSSCSCSCBSBSBCSBSCCCSBSSBBCSSBSSSSSBSCBCBSSBBBCSSBCSBSCBBSCBSCSBCBCCBSCCCBSSCBCBBBCSBSSCSCSSSCCCBSBSSSCBBBCCSSBBBCBBSCBBBBSSCCCBCCCBSBSBBSCBBBBBBSSCCSSBBBBSCSCCSCBBBCSBCBSBCBSSSBSCCCCCCCBCBSBBBSBCSSSCCSBCSSBSCBSBBBSCSBBSCSCCBCSSCBBBCCBBBCSCSBBCSSSCBCBCSBSCBSSBSCSCSBSBCSBBBCCBBCSCCBCCSSSCSCSBBCSSSSSSBSBBSBCCSBSSBSBBSSBCSCCCCBSBBCSBCCBSSSCBBCSSSCBCCBSSBBSCCSBSBCBCCCBBSCSBBBSSSBSCCBSSCCCBSSBSCSCCCBCCCSBBSBSCSCBBBSCBSCSSSCSSSSSSSBCSBSSCCSSSBCBBCCBSSCCSCBCCSBCCSSSBSCCSCSSSBCSBSSBSCSCSCBCBBCSSSSCCBCSCSBBBSCBBSCBCBCCSSBCBBSSSCSBCBCSSBBBBSCCSBBBBCSSBBSBCBSSBBSBCBSSSCCBCBSSSSSCCSBSCCSBCSBCBBCCBBSBCCSSSCBSCBCCBSBSCCBBSBSCCCSBBCSSSBBSCBSSCSCCCSBCSBCBBBCCBCSSBCSSCBBBSCCSBSSCBSSSCSBCSCSBCCCSBSSCCCSBCSSBSSCCCBCCBCCBSSCCCSCCSBBBSSCBSSBSCCCSCBSCCCCCSSCSCCSCBBSSBBSBBBCBBSSSSSSSSSCCBCBBCSBBSCCCCSSCSCCCCBSSSBCBCCSCBBCCCSSBCSCCCSBCBSCCBCBSSSCCBSCSSSBCBCCSSSBCCSSCSSBBBBBCBBSCSSSSSSBSBCSSSSCSCSBCCBBSSSBSSCBSBSCCCBCCCSBCCSBBSBSSCBCSCCCCBSCSBBSBCBCBBCCBCCCBBSSBCCCBSSSSSBCBSBCSCBSSSBSCBSSCCSSBSBCSSBCSBCCBCSBCBBBCBSSSSSBCCBCCSCSSBBSCCSSBCBCBSCSCBCCBBSBBBSBSSCBSSCSSCSCSBSBCBCSBBSSSCSSBSSCCCCBSBSCCSSSCCBBBSBBCCBCBBSBBCBBSSCSCBSSSCCCSBSSSSBBCBBSBBCBCCCCSBBBCSBCBBSBSCCBSSCBSSSBCCSCBBSCCCCSCSCCSSBSBSSBBBSCBCCBCCCSBCCSCBSSCCSSBCCCCCCSSBSSBCBCBCSCSCSSCBBBSSCBCBSCCBSSCBSCSCSCBSSCSCSBSBCCSCCSCCCSSCCCBCSCBBSBCSCBSCCBCCCBSSSCBBBBCBCBCCCSBCBCCBBCBCSSCBCBSCBSBBCSSSBCBCCCBBCCSSCCBCCCSSBSSBSBCSSSBSBSCCSSCSCBBBCSSSBSSSBBCSSCBSCCSBCBBBSSSBSBCSCSSCSSCBBSBBBSSCCSBSCCCBSSBSCSCBCCSSBCSSBCBSCBBCSSSBBSSBCBSSCSCBBSSSBBBBSBBCCCSCBSSCBSSSBBSCBCCBBCCSBCBCBCCCCCCBBBBBBCCBSCCBBSBBSSSBCBCBBBBBCSBSSCCBSSBBBCBSSCSBBBCCBSSBSCBBSSBBBBSCBSBBSSSBSSCCCSBBSCCCCCCCBCBSCCSBSSCBCCSBSCCBBBCCSBBCBBSCCSSBCBBBCBBSCSBCSSSCSBBBSBCCBSCBBSBSSSSCSBCCBCSBCCCSSBSBSBCBCBCBBSSBBBCCSSCSCCCSBCSBCBCBBCCCSSSBBCSCSSCSSSSBBSCCCSCCBSCCSBCSCCBBSCCSCBSSBSBSSSCCCSBBCSBSBSSCSSCCCSSSBSCSCBSBCCBCSSBSSCSBSSCSSBSCBSCBBCBCSCSCSSSSCCSSSSCBSCSBBBCCCSSBBCSCBSBBSSBSBSCSBBBSBBSCCCSSSSBBSBCBCCSBCBCSCSCCBSSBSCSBCBCBSBBBBSSCCSCCSBSCCSSBCBSSCCCSCSSBCBSCSCCSSBBCSSSBSCSSSCCBCBCSBCCBCBBCBBSCSSCCSCBCSCCCBSCSBBSSSBCBCCCSBBSCCBSSCCSCCCBBBBBCCCBSBBBSSBSSCSBBCBCSSCCBSBSSBSCCCSCSBSBCCCSBSCBSCSSSSSSCBBBSBCSCSCSCSCCBCSBCBSCCBSBSCCSCBCBBBSSBBBSBBSCCSSSBBCSSCCCSCCCCCSBCCSSCSBSCCBCSCBSCSBCBBCCBBSSCBBCCSBCCCBBBBBCBCSCSCCCBBSSSSBBSSCCBCSSSSBCSCCSBBBCSSCCSSSCSBBCSCBSSBBCCSBBBCSSCBSSSCSBBBSSBBBCSCCBBSCCCCCCCCBCBSCCSBBSSCCBCSSBSCBCSCBSCCCSCCBCCBBCCSSBCBCBSCCBCBCSSSSBBSCSCCBCSCCSCBSCSCSSCCCSCBBCSCBCBSBCSCBSCCSBSBSBCCSCBCCSSCCCBBCCCBBCSBSBSCSSSSCBCBSBCBCBSBSSSBBCBSCCBBBBSBSBSCBCBCCBCBCSCCCCCSSSCBCCCCBSSCCBCBCSCBCBCCCBSBBBCSSSBSSBBCBSCCCSSSCBCSSSSCSSBCSSSSCCBBBSBSCCBBBSSSSBSBCBBSSBSBBBCBBCBBSSCSSSBBCSBBSBCCSBSSBCSCBCBBBSSBBBSBSBBBSBSBBSCCCCCBSCCSCBCSBBCBSSSSSCCBSSBCSCCSCCBBSBCSSCSBBSBBBSCCCBSCBSSBSBSSSSCSCCSSCCBCSCSCSSBSSCCSBCCCBSCSSBCBBCSBBBCCSBSCSBBBSBBSCBSCSSBCSSBSSCSSCBCCSBBSCBSBBCCCCBBBSCSCCBBBSCBCSSSSSCCCCSCCSCBSSSBBCBSBBSSCSCSSBCBSSCCBCSBBBBSBSBBCBBBSCCCSSCBCSCCBCCSBCSBSBCBBSBSSCCBBBSBSCCBSCCBSBBSCCCCBCSSCSCCBSSCBBSCCCSBSSSCCSBSBCCCSSSCSSBCCBBCBSCBSBBCSBSCBCBSCSSSCBSBCCCCBSBSCCSBBSCBSBBBBSSCCCSSSSSCCBBCSBBBBSCBCBBCCCBBBCBBSCSBSCSCBBCBBSSSSSSBCSCBSBCSBBBSCSSBBSCSBCCCSCSCCCBSCSCCBSSBCCCSSBCBSSBCCCBSSCCSBSBBSCSBBCBBSCCCCCSBBCSCSBBBSCBBCBSBCSSSSCSSCCCSSSBSBBSCCBCSCSSCSSSSBSBCBCSCCCSSCSSBBBCCSSBCCBSSSSSBSBSSCSCCBBBBBSCCCBBSCSSCBBCBCBCCSSBBSCSBBCCSSSBBCSBSBSSCBBBCBSCBBBCBCSBSCBBBCBSCBCSCSSSBBBBSCCSCSSBSSBSSBSSBCBCCCSBSCCCCCCBBSBCSCCCCCSCSCBCCCCSSSSSBSSCSCSSBSBSCSSCSCBSCSCCBSBBSCBCCCCCSBSSCCBBBSCCSCCCSBSBSBCSCBCSBCCBSSBBBCCSSBSSCSBBSBBSCCCCSCSSCBSBBBCBSBSCCCSCBBBSBBSSBCSSCSSSBSSBSSBSCCBSBSCBBBSBCSCSBCCCBCCCBBBCBCBSCSSBBSSCCCBCSSBCBBBCBSCBCBSSSBBBCSBBBCBCBSSCCBBCSSBCBSBBCCBSSSSCSCBCCCCSBCSBCCSBBBCSCBCCCBBSCSCSBCSCBSBSSSSCSSBSCBBCCBSCSSBBCCCCSSCBSSBCCCSBSBBSSSSCBSSSSBCCSBSCBBBBCCBCCSBCSSSCCCBCSSBCBCCSCBSCBCCBSSCSCCBBSSBSBBBBBCSBBSCSCSSCBCSBBCSBSCSBSSBBSCBCSSCSCCBCBBBSBCBBBCSSBBBBCBBSSCSCBCCSSSSCCSCCCBBBBBCBBBBSSCCBBBCSCSSSBSBSBCCCBBSCCCSBSCCCSSBBCCCSCBBBCBBSSSCBBCSBCSCCSCCSSCSBCSSCSSBBBBSCSSSBSBCSBCBCCCBCBSSSSCCSBBCSCCCBCCCSCCCSBSCCBSBSSBBCCSBBSBCBCSSSBBCBCBCSCCBCCBBCSBCBBCCSBCCBBSCSSCBBSBCBSSBBBBSSSBSCCSBCSSSSBCBCSSCBBCSSCSSSBBSBSBSSSBBBSSCSSCSSBBCBSSSCCBCBCBCCSBSSSCSBCBSBCSSSCSCCCSSCSSSBBCSBSBBBCSCSCBSSSCSCSCSCSCBSCSSSCSBBBSSBCCBSSCBBBBCBBSCSBBCBBCSCBBSBSSSBSSBCSSBCBSSSCBCCBCCSSBSCBBBCSSSBBCCBSCCBBBSCSBSCBSCCBSBBBBSCCBSSCCCSCBBCCCCBBBBSBSSCBCSSBBCBSSSSBCBSSBCBSCBBBCSBCBBCBSBBBSBCCSSSSBSBBSCSBSBCSSSCCBBBSBBBCSBSSBBSBSSCCBCCCSBBSBSCSCSSCBBBSSSCSSCCSBCBCCSCBSBSCSSCSCBSCSSCSSBCSCCBBBCCCCSBBSSSSSBCSSSBBBCBCSSCSSBBBBBSCSCBCCBSBBSCSBCBCBBSCCCCSBSSCCCBSBCSCBBCCBCCCCSCCCBSBCSCBBSCSSBSSSSSBBSCCBBCSBSCBBBSCBBBSCBSBBBBCCCBCBSCBBBBBSCBSSBSSSSBSBSCBBBBSCCSSSCSCSBCSBCBBBCSCBSSSSBCBSCCCCBSCSCSBSBCSBBBCBBSBCBBCBSCCSBSSCCSBCBBSSSSCCSBCBSSBSSSBCCCSSSSCCBSSSSBCBSSCSSBSBBCSCCCCSSBSCSSBCCSSSCBCBCBCSBBCCSBSBBCSSSSBBBBBSSBCSSCSSBSCCCCBSBBSCCCSCCSBSBCSCSCCCCBSBSBBCSSCCCBCSCCBBCCCSCBSSBBSSCBBBBSBSCBSBBCCCBBCBCSCSBBSCBSBBSBSSBSCSCCCSSBBCSSCCSCCBBBCSCCBBCBCCCBCSSCBBCCSSBBBCSCCBBSCSSBBBBBSSBBBSCCBBBBBCCBBSSCCSBSSSSSCBSCCSBCCSCSCBSSBSBBBSCCSBCBSCBSSSBSBCBBCBCBBCCSBCSSSSSCBCBBSSBCBCSSSBCBBSSBSSSCBBSBSCSBSCSSCCSSCBSCCBCCBCBCCBCSSCBCCCBCCSCSSSSCSCBCSCCBSSCCSBBSCBCBSBBSBSCCSSBBBSBBBCCSSCCSCCCCCSBCBSBBSSCSSSBBBCSBCSBSBCCSCCSCBCBCBBBSBBCCSCSSCBCBCSBCSSSBCSSCCBCBBBBBCBBBSCCCBBCBCSCBCBBCBSSCCCSBCSCCCBCCSCCCCSCCCCBBCCCCBCBBBBCSSSBCCSBBSCBCCCSBSSCBCBSCCBBCCCSBCBCCCSSCCCCSSBBCSCBCSBSCCCBCCCSCCBBBSSCSSBSBBCSBBSBBBSBSSSSBSBCBSCSSBCCBBBSSCBSCCCCBCCBCBCSBCBBSCSSBBSSSBCCCSBBBSCSSCBBSCCBCBCCBCBSBCCSBCBSSCSCSCSBBSCSBBSSCCSCSBSSBSCCCCBSCBSSCCBBCSBBBBBCCBBSBBSBCCBCBBBBBBCBBBCSCBBBSSSBCSCCBSCSBCBCBBBBCSCBCCCCCBSBCCBCBCCSBSSSSCSSCSCSCBBBSCSBSSBSBCBSSBSCCCBCBBCSCBCCSSCBBCCBBCSCBBCCBSSBCCSCSCCCBBCBCCBCSSCSCBBSCCCBBCSBBBCCSSSBSSBBBCBCBBCBSBCCSCCBCSBBBBCCBSCSCBCCSBSCCBCCSCCBBCBBSBCBBSSBCSCCCCSBSCSSSBBSSBCBCCCSBBBSSCCSBBSCCBSBCCSBBSBBSSBSBCSBSSCCSBBSBBSSCSCSBBCCBCBSCSBBSCBSBCBBSBSCCCBSSCSCSCBSSBBSCSCCBCSCSBBBSBSBSBBBCCCCBSBSBBSCBSBCBBCCCSBSSSSSBCCBCSBCSBSSBSCCCSCSCSCBSCBCSSBBSBBCBSSBBCCBCBCBSCCCSSBCSBSCCSCCCSCSBBCSCSSBCSCBCBBSSBCBCCSBCSCSBSCBCSBSCCSCSBBSBCCSBBCBCCBBSBSBCCCCBSBSBSSBSCCSCCBBBBSCSCCSSBBSSCSCBSBCCCCBCCCBSCSCSCBSSBCCSCSSSCBBCBSSCSSBBBCSSCSCSSSBBBBBCCSBSSBCSCSCSBBSCSBBSCSBCCSCCSBCBSCSCBCSBSCSSBCBCBBBBBCCSBBBSSCBCSCBCCSCBBBCCCSBSSSSBBSSCBSSCSBBSCBSCSCBBBSSBBCCSBBSBBBSSBCSCSBSBSCBSSCBSBSCBSCSCSSBCCSBBCCBCCCSSCBBBCBSSBSCSBSBBCBSCBBCSBSCCCSSBCCBSCSSSSSCBBCSCCSSBSCSBBSCSBSSCBBBSSCSSSCSBSCBBBSBCBBBCCCCSBSBCBSSCCCBCCCCCSBCSCCBSSBBCBSCCBSBSBBSBCSBSBSCSCSCBSCCBSCSCBBSBCCCSBBCCBBBCSCBSSCBSCBCCCBSBBBCBCCCSSBCCBSBBSBCSBCSCBSSBBSBSSSSCSBCBCSCCSCCBCSSCSSCSCSBCBCBSCBCSCCSBBCBCSCCBBBSCCSCSSCCSCCCSBSBSSCSBBBBCBCSBSBSBCBSSSBCCSSSCCSCCCBCBCBBBSSSBCSSCBCBSSCBSBCSBCSBSBCCCBBCCSCSCCCCSBCBBCSCBBSCCCCSCBSSCSBCSCCCBCSBSCSBBSSSCSCCBBBSBCCSSSCSBCBBBSSCSBCSCCSSBBBSSCCBSBSSSBSBSSCCSSBCSSBSBCBSSCBSSSSCSSCCSSSBCCSBBCBBCCBBCSCCCSCCCSBCBCCCSSSBCBBBSSCCBCBBSCSBSCSSBBCBSSCSBBBSSCSSSSBBCBCBSCSSSBCCCSCSCCCBSBCCSCCSBBSCBCCBBCSSSCBBCBCCSCSSCBCSBSBSSBSSBBSBBBBCCSBSBCBSBCBBSCCCSCCSCSCSSCBSCSCBSBCBSBBCBSCBBCBBBCCSSSCCBBCBCSCCCBBBSBSCCSSSCSCBCSSCSSCCBSBSSBBCBBSCSSCBCSBBBCBCBSCCSCBSSSSCSCCCSSCSBBSSSSBSCCBCBSCSBSBCSSCBBCSBSSCCBCCCCCSBBSCBBCCSSCSSCBBBCCBBCCSCCSBSSSCCCCSBCBCBSSSBCSBSCCBBCBCBCCCSSSSBCSSBBSCCBCSCBBBCBCCCCSBSSBBSBCSSBCBSCSCSSSBBSCCCCSBBBBBSCBBBSSBCBSCSSBSCCBSSCSSBSSBBSSCSSCSSBCSCBBCCBSBSBBBSSSSCCCSSSSBBBBSSSBCSCSSCBBCSSBBCSSBSSSCBSCBCSSCCCBBCCSSSCSCBCSBCSSBBSCSCSCSCSBCSSCSCCSSSCBBSCSCCSCSCCSSSBBSSSSBCCCCCCSSBCBBSSSSCCCBBBCSCSSBSSSBSCBCSSCBCCSBBSSSCBBSBCCBBSSSCSBBCSSSBCBSBCCBSCCSBCCCBBCSBBBBBSSCBCCCBBSCCBCSBBBCSSSBSBSSCSBCCBCBCCBBCSBSCSSCCSSCCCSCSCSCBSCBCCCCSSBSCCSSCCBCCBSBSSSCCCBSBCSCBSBSCBSBCBCBCCBBCCSSBSCSCCBSBCCSCCSBBSSBCCBBBSSCSBCSBBBCSCSCCCBSSSCBBCCCBSBSCSSSSCBCBSBCCBSBCCBCSBCCSSCBCSSCSCCCSCBSBBSBBCSSCSBBSBSCSBBSCBCCBCBBSSBCBCCCBSCCCBCCSBSBSSCSBBCBBCSCCSSBBCCBCCBSBSBSBSSBCCCSCBSCSSCBCSSSSCBBCBBCSSBSCSSBSSBCCSSBCSCBBCBSCSSSCBCSSBCSBSBBSSCBCSCCCBSSCBBBSCSBSBBBBCBSSSSSCSSSCSBSSBBBSCCCCCBCSCBCBBBBSSBSSSCBCCCCSCSCSCCBSBCCCSBBSSCSSBBSSSSSSSSSSSSSSBCCBCSSCBCBCBCSBCBSSCBCBCSBBCBCCBSCSBBSBBBCCSBCSCCCSSBSCBBSSSCSBSSCSSSBSCCBCCCBBBCBSSBBCBBCCSSSSBSSBBBSBCSSCBCCCBSCSSSBSCBSSCSSCBBCBCCCBBCCCSSCCBBCSSCSBBCSCCBCBBCSCBBBCCBBCBBCCBCBSBCCSSSSSSCCSBSSSSCSCSSSSBBSSCCSCSCSCCCSSBSCSCCBSSBBBBBBBSSCCSBSBSBBSBBSBSBCBBBSSBSSBBSBSSBBCCSSCSCBSSCBCCBSCBCCBCCSCBSCBBCSCSCSSBBCCSSCBCBCSBCCCSBSCBBBBBSSSCBCCBBSBBSBCSSBSBBSBSCBSCCBSBBCCBCSCBCSSCSSCCCSCBCBSCSSBSBBSCCBCBSBCSSSBBBBSCBCCSSCSBCSSBBBSCSBBBCBCSCCSBBCCCSCBBCSCBCSBSSBCSCBCCCSCBSCCSSBSCSSSCSBCSCBSSSBSSSCBSSBBCSCSBCCCCBBBCBCSBSBSCCCBBSCSCSSCCCBCCSSSBCBCBCCBCBCSBCBBSSSSSSCBCCCSBBCBSCBCSBBSSBBBCCCBBCSSCCCCSBCSBCSCSBSCCSCSCCCBCSSBCBSCCBBBSSCSSSBCSSCBCBBBBSBCCBCBSBSSBSSSSBCBCBCCBBCSBSSBSBSBBBCBBSCSBCBBSSBCSCCBSSBCCCSBCBSBSSCBCCSSBCCSBSSCSBCSSBSSCSBBCBSCCBSCBBBSCSSBSBCCSBBBCSCBCCBSCSSSBBBBSCBCCBBCSCBBBBBCBBBCCCBSBSBSBSBSSSCSSBSSBCCCCSBSBCBSCBCBCBSSSSCCCCCCCBSBSCCBCCCSSSBBBCCSSSSCCBSSSCSSSCCSBCCCBBSBBSBBCSCBSCBSBBSSBBSSSSCBBBSSBSCCCCBSCBSBSSBBBCSSCSBBBCCSBSCSSCBCBCBBBCCSCCCCSCBBCCCSBBCSSCSBBCSCSSSBSSBCSSCSBBCSCBSCCBBBBCCSBCSCCBCCSBBSBCSCBBCSCSSSSSBSCCSSBSSSBCCCCSBBBSCSSBSBSSBBBCSSBBCSCCSCBSCSSCCCSCCBBBSBSSCCSBBSSSSSCCBSBSBSBSCCCCCCBBCSSSSSSCSBCSBSCCSBBCCBCCSSCSSCSSCCCBCBBBSBBSBBBSBSCCBBSBBSCSCCBCSBCCCCCBBSBSBSSBBSBCSCCCSCSCSBCSSCCSBBCBBCBCBSCSSCSCSSSSBCBCCBSBBBBCBSCBBSCCSSSBCSCCSCSSBBSCBSSSSSSSCBSCCBBBSBSCBBBBSSSCBCSSSCCBSBCCSBBCBCBBBBBSSCSBCBBSBSCSCCSCCSCSBCSBCCBCSBBSCCCSBSCBBSSSBBSBBCSCSBSSSCCSBSBCSSSSCCBCBCCCCCBBCBCBSSBBCSBCBSSCSSBCSCBBCCBSCCSBSCBCCBCSBBSBCSBSCBCCCSSSCSSSBSCSBBSBBSBBBBCSSBSBCBBBBBBBCCSSSBSSBCSCCSSSSBSCBSCBBBCBBSBSSBSSSSBSCCSSBCCSBCCBSBSBSSCCBBCSBCCCCBBBCBBCBSCBSBCCSBBSSBBSSSCSBSCBBBCCSBSSBCBBCCSCCCSCBCSBBCBBCCSSSSCBCCSCSSSCSBSSSSCBBCSSSCSCSCSBBCBSBBSCBSBBSCSSCCCCCSSBCCCCSBCCSSBCCCBBCSCCCSBCSCBCBSBCBBBBSCCSCCBCSCBSCBSCSBBBCSBCBCSBSBSSCBSCCSSBCSBSSBCSSCBBBSBBSCCCBCBBSBBSCCCCSCBCBBCBBCCSCBCCCSSCBBSSSBCCCSCSCBBCCSSSSBBBBCBSBCSCCCCSCSBCSBBSCSCCCSCBBSCBBBCBBBSCCSSSBCSSSSBSBSSBSCCSBBBBSCSSBCSSSCSBCCSSCCBSBSBCSSCSBSCCCCBSSBCSCBCBBCBBCSSSBSBSCSSCBCCSBCSSSBBCBBCSSSBSCBCCCSSBCCBCSBSSSCSBSCBCCBBSSCSBCSBCBBCBBSBBCSBBBSSCBCBBCSCCBSCSBCSCCBCBBSBCCBSSBCSSSBCSCCBBBCSSSBCSSCSSSCSSBBCCCBCBSBCBSSSCCBSBSBSSCCBBSSBBCBSCCCBBSSSCCCSCCBBBBCBBSCBSBCCSSSSSBSSSSBSCCBSSBSCCSBBBBBSSCSSBSBSBCCSBSSSBCBBBSSSCCBCSCBBBBCBCCBCCSSCBBSSSBBBBSBSBSSSSCSBBSCSCBCCBBCSSBSCSSSBBSBSSSSBBCCCSCBCSCSCSSCSSSSSSCCBSBSSSBCCBCSSBSCSSCBBBBCSCSSCSBBSSSBSCSSBSSBSBCCBCBSBSBSCBCCCSBBBSCBSSBBCSCCCCCSCSBCCBSSCCCCCSCBSSCBCSBCCSBCSCSBBBSBSBBBSSBBBBSBBSBCBSBSBSSBSCCSBCCSSSBSBBCSSBSCSBSCSCBCBSBCSSCSSBBBCCSCSCCCSSSCSBSCBCBBCSSSCSCSCSBBSSBBBCSCBBCCCSSBSBBSCSCCSCBCBCSCSBCBSCSBCSCBCBSCSCCCBSCCCBSSCSSBSSSSSCCSBBCSSCSCSSSBSCSSSBSBSSSBCSCBBBSSSSCCCSSCCBBCCSCBBCCSCCSBBSCBBSSSBCBBBBSBSCSBCSBSBBCSSCBBBSBCCCSBCCCCSBCSSBCCCBCBCBCCBSSSBSBSBCBSBBCSCSSSBCCBBCCCBCCBSSCCCSSCCCBCBBSBCBSCCSCSSCSBSSBCCSBCBBSCCBBBBSSCBCSCSSSCBCSBSCSCSCCSBCBCBBBSCBSCSCBBSCBBCSCSCBCCSSCCBCBBCSSCCCCCSCSSCCBCCCCCSCBBSBBCCSCSBBCSBBSBSSBCBSBCCSBBCSSCCBSSBSBSBBBBSCCSCCSSCCSBBSBSSBSCSSCSCBCBCSSCCSSSBBSSCCSBCBSSCCBBBBCBBBCBSBBCBCCBSSCSBCBSCBSBSCCCBCCSCBCCCCCBCBSCBBBSSSSBCCSCSBBSCBBBSBSCBBCSSCCCCSBBCCCCBCSSBBBBBCBSBSBBSSSSSBCCSBBSCCBCCSBCBBBSCCSBSBCSBBBBCSSBCCCBCBSCBBSCCBBSBBSSSSSSSCBBBBBSSSSCBCSSSCBSBBBSBCSBSSCBBBCBBCSCCBCBCSCSBCSSBSSSCBBBSSSCSCSSBCSSBCCSBCBSBBSBCBCSBBSBBSSSCSCCSBSCCCBBSCBCSCSBBBSCCCBCSBSSCCCBSCSCSCBCCBSBBCBBCSCBCCSCBSCSSSSCCCSSBBSBCCCCBBSBBSBSCSBSBSSBCBCSBCSCBCBBSSCBSBCSBSSCCSCBSSBBCCCBCCSSSSCSBSSBBCBSCCSBCBBCSBCCBCSSSCCSBBBCBSSBSCCSSBCBCBSSCCBBBBBCSSSBSCSBSSSCCSSCSSBSCSBCBCBCCBSCSCBBBSSBBSCSSBCSBBBSBBBSCSBBSSSSBBSSCSBBBBBBBBSSBCCSBSCBCCSBBBSBBCCSCCCSCCCCCBCSBBCBCSBSBSSSBBBBCCBCSSBBBBBBCSSBSSSSBSSCBCCSCSBCSBBSSCSBCBCSCSBBSSCCSSBSBSCBCBSCSCBBSCBSBCBSCBBSBSCSBSSSCBCSBBBBSBCSBBSSSCCCBBSSBCSCBCCCBSSSCCBBSBCBSSCSBBSBBSSCSBSBSCSSBCSCBCSCSCSCCBCBBSBCCSCCBSCCBSBCCSBBCCSSBSSCSSBSSCCBSCCCBCCSSSCBCCSSBBCBCCSCCBSBBCSBBCBSCBCBSCBBSSCSBSSSCSBSSSCBSBBSCSSSCBSCCSBSCCSSCBBCCCBSSBSCBSCBCCCBSBSBBCSSCCCBSSBBCSCSBSBBCSBCSCBCCBBSCSBCBSCBBBBCCCCSCBCSCCSCSSCCBBBCSCSSSSCBCCSSSCCSCCCBBCBSCCCBBBBSCCSSSCBCSCCBSCSSCBCSSSCSCBSSSBSSCBBSBCBSBSBCBSSSSBSSBBCSSSCBSSCBBCBSCBCCBCSSSSBBCBBBCCSSCCCCBBSSCSBBCCSCCBBSBBCCCCCCSSBBSCBCBSSCCCSCCSCSSBBCCCCBCBCSBCCBBBSCSBBCSCCBBBCSSCSBBSSCBCSSBCSSCCSCSCSBCSSBSSCBCCBBCBBCCCSCBSCSBBCSSBBBCCSBCBCCBBSCBBBBSCSBCBBSSBSCCSCSBBCSSBSCCSSSSCCCBBSCSCSCBSBBSSSCBBCCBBCCCCBBSCCSBCCBSSSBBCSSCSBBCSBBSCSCSSBBSBSBCBBSBCCCCCCSCBBSSBBCSSSCBBSCCCCBCSCCSBCBBCCSBCCCSBSSCBBCSCSCCSCCSBBSBSBCCCCCSBBSSBBBCSCBCCBBBSBBCBSCCSSBCBSSBBBBSBSBCBBBCCCCSCSCSSCBCCCSCCSSBCBCBSCCBBSSSSBSBSSSSBSCSBBCCBSBCBBSCCCSBSSSCCCCSCCSSBSSSCSBSCCBSBCCSSCBBSBCCBCBCBSSBCBSCCSBCBSCBCCCSBSCSCSBSCCBCCSBCCSCBSBSCSSSBCCCBBCSBSCCSBSCCCCBCBCCSCBCSCBSCCBBBSCSBCSCCBSBBSBSCBCCBCCCSSBBBBSCBCBCSSSSSSCSSSBBBBBSBSBSSCSSSCSBSCBBCSCSCCCBBBSCSCCSSCCCBSBCBBCBCBSBCSBBCSCCBSSBCBBSCCSBCSSSSBBCBBBBSSBCBBBSBBCBSSBCBSSSSCSSBSCBCBBCCBSCCSBBSCCCSCBSCBSBBSCSCSCSSBCBCSCCBBSCCCSSBCCSCSSBCBBSSBSBSSBCBSCCSSCBBCCSSSSCBSBBCSSBSSSBCSCBBSCBSBBSBSCBBBSBBCBSCSBSCSSCCCCCBSBSBCCSBCBSBCBBSSSSBSCSCBSCCCSCBSSSBCBBCBSBBSBCCBBBSBSSCCSSBBCSSCCBCSSCBSCBCBSBBSCCBCSSSCBBCBBSSCSBSBCBCSSBBSBSCBBCSBSBSSSBBBCSSSCBCSBBCBCCCCBCSBBCBBBBBSBSBCSBBCSSCBBCSBCBBBBSBCCSCCCBCSCSSCCCCBCCCSCSBCBSBCBBBBBSCCSBBBCCCSSCCSSBCCCCSSSSBBBSBCCSBBSBCBBBSCBCCSCSCCBCCSBBCBCSSCBBCCSSBBBBBSSSSSBCSBBSBCSSSSCBSCSCBSBBSSCCSCCBCBBCCSBBSBBSSBBSSSSBCBBBCBBBBCCCCSBSCBSBBSBSBBCSSSCBCSBCCCCSCCSBSBCSSBSBBBBSSBSCBBBCSBSSCBCSCSCCCBSBSCCCBCCCCCBSCCBBSSCCBCBCBCCCSSCBCBBCSCCBSBBSSSCSCCBSSCCCCSCBBBBBCCBBCBBBCCBCSSCBSCSCCCBSCBSCCSSSCCBCBBBSCSSCCBCSSCSBCBSSCSSSSBCBBCCBBBSCSSCCBCSBBCSBSCBBSCCBBSBCSSCCCCBCBBCBCCCBSSSCSBBSCBSBCCCSSCBSSBBCCBCCSCCSCBCBBCSCBSSSCSCBBBBCBSCCSCSBSBBCBBCCBBSSSCSBBSCCBCBBBBSBSCBCBBCSBSSSSSCSSCCCBCSBBSBCBCBSSBCCSSCBSSCCBCCCSSCBCBSCBSCCBSBSCBSSSSBCSCCSCBCBBCBBCSBBSBCSBBCSBCSBBCCCSBSSCBSBSSSSSBBBSCCCBSBCSBCCBBCSBCBCCCCCBBCCBBCBCCCSBCSSCCBCCSCCSBSCCSCSSBBBSCSCBBCCSBCSBSBCSSCSSBBSSCCSSCCCBSCBCSSCCBCCCSSCSSSCCSBBCSBSSCCBSSBBBCBSCSSBBBSBCBSBBSBSBCBCCSBBSCSBSBBBSSCSSBCCBSBCSBBCBSCCBBSCCSSSBCCBSBBBCBCCBCCCCBBBBBCSBBSSBCBSBSSBBSBSCCCSBBSSCBBBBSCBSSBCSSSBBBBSSSSCCCSBCBSCBBSBCSBBBCBSCSCSSSBSCBSCCCSBBCCBSBCCBBSSBBCSCSSCSSCCBCBBCSCBSSSSCBCBCBSSSSBCCSSSBSSCCBSBBSCCCCSSCBCBCSSBSBCBCBBSBSSSCSSCCBCSCCSCCBCSCSSBSSBCBSSSSBSCSSBSSCBBSCBBSCBSCCSCCCSCBBSBBBBCSBSBCSBBBBSCBSSBCBCBCBCCCCSCSBSCCCCBSCCBBBBBCSSSBSBBBSBSCSSBSCBSBCSBSBSSSCSSCSCSBCBSSCBCBCCCSCBSSBCSBBBSSBBBSSCSCSBCCCCBSSCSBBCBBSBBCSSSCCSCSSCSBCSBSBSSBCCSSSBCSSBCCBSSSSSBCSCCCSBCSCSBSCBCSBSBCSCCCSCBCSBBBBSSCCCSCBCSCSBBSSBSCSSCCBBSSBSCCSBSCCBSCSCCBBBBCSSSCBSCCCCBCBSBBBBCCSSBSSSBCBSCBSSSSBCBSCSSSCBSSBSBSCCSCBCCSBSCSBSBSCCCSCCCCCCCSCCBCSCCBSSCBCCBSBBCSSSSBCSSBCCBCBSSBCSSSSBCBSBBBBBCSBCCSBBCBSSSCBBCSSCCSCBBBCCSCSBSSSSCBSCCSBBSCSCBCSBCSSSSBBCBBBBSBBSBBCBBBCSCSBCCBBSCSCBBCCBBBBCCCSSSSCSCBBSBBSCCBSCCCBBBBCCBBSCBCBSCSSBBBBCBSCSCCSSBBSSBCCCSCBBSCCCBBCCCBCSSBSBSCBBBSCSBBBCBCSBCCSSBSCBBBBSSBBSSSSBSBBSBSCSBSBSCSBCSCBSBBCBSBCBBCCBBCBBBCSSSCCSSSSSSBSCCCSSCCCBSSSSBSCSCCBBCBBBCBSCBCSBBSBCCBCBCCSBSCBSSBCBCBSCBSBCCSBBBSBSSCSSCBBCBBCBBBSCCBBBSBBCSBCCSSBCSCSBSSCBBSSCBBSSSCSBSCBBBBBBSSSSCBBBCCBSCCCCBCBCSCCBSCSCSCCCSBCCBCCBSCBBBSCSCBSCBCSSBBCCBCCCBSCSBSSCCSCCCCSBSBBBCSCBCBCSCCCBCCBSCBBSCBBBSCBCSSCBCCSCSSCSBBSCCBCBCSCBBSCSSCBBSSBBCSBCCBCBSCSBBBSSSBSBSBCBCBSSSCSSSCBBCSCSSSCCBBCBSSCCBCSBSBBCSBCCCBSSCSBCSCBCCSCBSSCBBSSBBSSCSSCBCSBCBBSBBBBCBSBCBSSSCCSCCCSBCCCCCSCBCSCSSSSBBCSCBBBCCBSSSBCBCCCCBCBSBBBBBBCSSSSBSCSBBBCSSBCSSBSBCCBSBCSSSBCBSSCSCCBCBBCBCSSSBBCCBCBBBBBSSBSCSSSSSSSSCCBBCSSBCBCBBSSCCBBBSSCBSSBBBBBCCBBBCBSBBBCBSSSBBCCBBSBCSCSSSBBCSCCSSBCSBBBSSBCSBBCCCBSBBCSCCCSCCCBSSSCCSBCBCBBBSCCBBSBBSSSBBCCBSSBSBCCBSBBCCSBBBCCBBCCCSSSSBBSBCSSBCSBBCBSBBBSBCSSSBSBCBBSBCSCBBCBCSCCCBBCCSCSCSBSSBBSSBCBBCSSSSSBBBCBCCSCCSCBBBCBSSCSBCCCSSCSCBBBBBBSCBBSCSBBBSSBCBSSCBSSCSSCSCCSBBBBCSBCSSCSSCSSBBCCCSCCSBSCBCSBBCCBSCCCBSSBCCBCCSCSCBBSSCSBCBCCSSBSCSCBCCBCCCBBSCBSBCBBCSSSBSCCSSBSBCSBBSBBBCSCCBBSSSBSCBCCCSSSBCCSCBBCCSSBSBCBCSBBCSBSSSBSBBSSBSSSBBCBSCCCBSBBSSSCSCCCCSBCSSCCCBCCBBBSCBBBSSSCSSSBCBSSCBCSBCSSBSSBBCBBSCSSSSCBBCSSBBBBSBBSSBCBSBSBCBSCSBCCCBBSSCBCCSBCSSCSCBCCSSCCCCBSSSBBCSBSCBBBCBSBCBBSSCCBSCSSSCSCCBSBCBCBBCSSSBCBSBBBSSBCCSBSBSSSSCBBSCSSSSBCBBBBSSBSSBCCBCCCSBBBCSSSBBBCBBCBBSSSCSSBCCCSBCCCCSCBBSSSBCCSBCSSCCBCSSCBBSCBCBSBBBCBBCSBSBCSCSCCSSCCCSCCBSBBBCSCCSCBBCCCBSCBCSSCSBCBSBCBBSBCSCBCCBBBBCCSSBBCCBBSBCBCSBSCBCBSSSCCBBBSCCCBSBCSSCCSSSCCCBCBSCBBCSCCBSCBBBCSBSSSCBSSSSCCBSBBBCCCCSCBCCBCBSSSSBCCBBSCSCBCBSCCBBBCSSCSSCBBSSSSBBCBBBCCBBBCSBCSBCBBSCCSCCBBCBBBCCSSBCCCBSCCBBCCSCCBSCSSBCBSBSCBCSCCBCCBBSSCSBSBCBBCSSCBSBBCCCBBBSBCSSBCCSCCSSSSCBSBSSCCCSCSSCBSBBSSCSCCBSCBBBBBBSSSBCSBSCCCSSSCBBSCSSCCSBBCSSCCSSCCCCSSCSCBBCBSBSSCCSSCSSBBSBBCSSSCSBBBSBSCBSSCBCCCCCCCSSSSSSCSCSCSCSCSSSCCBCBCBSBSCSBSBCBCBSSCSBBSSSBBSBSSBSSSBCSBSCBSCBBBCSCSBCBCCSCSCBBCSBBBCSBCCCBCBBCSCSSCBCSCBSSSBCBBBSBCSBSBBCBSCBBSSBBSCBBSCCCCSCCCBBCSSBBSSCCBCBCCBSBBSCSCSCCBCCCCSSCSCCBBSBCSCCBBSCCBCBCCCSSBCCCBBCCSSCBBBCSSSCSBCCCSCBCSBSSBSSBCSBSCBBCSSSBSSSSBSSSCCCBBCBBSSSSCCSSCCCBCBSBBSBCSCSCSBBSBCBBSSCCSSSCBBSSBSCCSBCSSSSSBCCBBBSCSSSSBSSCSSBBBSCBCCSBCSCSCBCCSSCCCSSBSSCBSCSSBBCBSSSCCBCBBCBCCBCBBCSBSCCBCCBCSCCBCSBBSBSSSCCBSCSCCSSSBBSCBBSBSSBCSBBBSCSSBBBSCCCCCBCCBBCCSBBBCCCCCSCSBBBCSCSSCCSSCBCSCSCBSBCBSBCCSCBBBCSSBCSBSCSBSBSBBSSCCCCCSSBSSSSCCCCSCBCBCBCBCSSSBCSBBSCCSCBSCCBSBSCSSSBBSCBCSCSSBSBCBCBCSBSCSSBCCBCBCSSSSBBBBBSCBSBCSCSCSBBSBCCCSSBSCBSSSSBCCCCSCSCSSSSBCSCSSBSSBCCCBCSBCSCCSSSCSCBCCSSBCBCSBSSSSSSSBBCBCSBSCBBBBBBBCCCCBCCSBSCCSCCBSSSSBCBBCBBSBBCSBBBSCBBSCSBBBSBSBCSBSBSBCSSBCCCSCCSSBSCSCCBSSBSCSSSBBSBBCCBCSSCCSCCBSSSCBCBSBCSSCBSCCBCBCBCBSSSCCSBSBBBCSBBSCCSBCSCSSBCCSBBCSBBCCBSSBSCCSBBBCBBSCSCBCCSSCBCBCCCBSBSBCBCCBCCSSSCCCCCCCBCBCSCCCCBSCSBBSBCBBBSCCSSSBCCCCSSSCBBBSCBCCBCSSCBCBCCCBBSCSSCBCSBCBBSBBCSCSSBCSCSCBCCSSBSSBCCCBSSSSCBSBSCSCBBBCSBSCCBBCBCCSCSSSCSCBCSBCCCCBCBBSSSSCBBBSCBSBCBSSSSSSCCCCSCCBBCCBBSBCBBCSBCSSCSCCCCCCBSBCSBBBCBBCSBBBCSBCBCBSSBSSCSBCBCCCSBCBCCSSBBCCSCBCCBBCBBCBCSCCCCSCCSBBCCCSCSCBCSCSSSBBBBCSSBSCBCCCCCBBSSSBSSCCSBCCSBBCBSSCCBSSCSCSSCCCCCBCSCCCCBCSBBSBCSSSSCBBSCCCCSBSBSCSSSBBSCBBCCSSCCCSBCBSSSCSBBSSCBCBCCCBBCSBCBBSSBBSSBCBBBSBBCSBBCCBBBSCSBSSBBBSSSSSBSBSBBSSBSBBBSCCSCCCSBCCBCBBCBCBBSCBCSBBSBSBBCSBSSCBCCBSBBCSSSSSCSBSSBSSSCCCCBBSSBCBSBCBBBSBSBCCSBCSCCSBSSSBCSSSCBCBBCSBSBCCCCBCCCSBBSBBSBBSCCSSBCSSCSCSCCSSBSSSCCBCBCBCBBBSSBBSCSCSSCBBSCBCBSBBSCBSSCSCCBBCCBSBBSBSCSSBCBSCCCSBBBCBCBSCCBBBCCCCBCBBCSCSBCSCSBCSCCSCSSBBCSBBSSSSBBCSCCBBBBCBSCBCBSBCBCSSSBSBCSBSCBSBBCBBCBCSCCCCSSCCCSBSBBBBBSBSSBSSSBBSCBBCBBCBBCBBBBCCBCBBCSBSCCCCSBSCCBBSBBBBBBSBSCCSSBBBCSSBSCCSSCSCCSSSBBCBBSCBBSSCSSCBBCBBSCSSCCBSCCCBSSCSCCBSCCCBSSCCSCSBCCCBCBCCSBCSCSBSSCBSSCCCSSBCBSSBSSCCBCSBSBCBCSBSCCBCBBBBSCSSSSSSCBSSSCSCBSCBSBBSBSCCCSCBCSBSCCSCBBBBBSSSBSSSBBBCBCCSSBBCCBBBBBBSBCCCCCCSBSBCCCSBBBCBCBCCCBSSSBCCSCSSBSSCCSBSBCBBCCCCBBBSSBCSSCBCCBBCBBBCBSCCCBSBCBCSCBCSSBSBBCSSSSCBSCBSCBSSSCBSBSSSBBCSCSSBCCBCBCSBSBBBCBCBCCBBCBSCCCBSSCCBSBCSSCBSSCCSBCBCSSSCCCSCCBSSSCCCCBSBSCSSSSSBCBBCSBCBCBCSCCSBBCSSSSBBSCCSSBSSCBBCSCBSBSBCBCCCSSSCCCCCBCBCCBBBCSBSSSBCCBBBBCCCBSCBCBCSCCCSSBBSSBBBSSCSCBCSBCBBSSSCCCSBCBBSBSCSCBBSCCBSBCCCBBCSCBBSCCCSSCSCSCSSCBSSSBSSSBCBSBCBSSBCBSBBBSSBCCCSSBSSBCBBBCCBBSBSCSCCCCBSSSSCSCSCSBCCBCSCCBCCBCCSSBSSCBCCBSSBSSBCBBCCBCSSBCCBSBSCBCCCBCCSBBBBBSSCSCBSBBSCSCCBBSBCCCSSBBSCBSSSCCSSCCSSSCBCSBCBCBBBCCBCBCCCCBSBSCBCCBSBSSBBCBBBSSBBCSBCSSSSBBBSBSCSBBBSSSCBBBBBCCBSBBCCBBCCCCCSCSCSSSSBBBSSCSCBCBSCBCCCBCCSSBBBCCBCBBCBBBCSCBBSCSBSBBBCCSBBCBSCSBBBSCBBCCBSBSCBCSSCCCCBSBBSBBCBCBSCCBCSSSSCBSSSBCCSBSCCBSSSCSCBBBCCSBSBCCSCCCCCCSSCSCCBCCCSCCBSCCSBSCSCBSCBBSSCSCSCBSBSBBBCCSBSSCBBSSSSCCBCBCCSSBCSSCSBSSCBCCCBBSSSBBBSBCSSSSCBBSCBCCBBSSBBSSCSCSCSSSSCSSSCSCBBSCBSCSBBBBSBBCCBCCBCBCSBCBSSBCBCBBSSCCCSSCCBSCCBSBBBSSCBSCCBSSCSCSBCBCBSSBSBBSCSBBCCCCBBBCBBBSSBCCBCBCSBCCCBCSBCBSCSBSBBCSSBCBBSBCSCBCBBCCSCBBSSCSCCCBSSBCBCCSCSCSBCSBCBCCCSCSSCSSCBBSCBBBSBCBCCBSSBBSCCCSCSBSSSCBBCSCCBBCCCSSBSCSBBSSCSCBSCCCBBBCSSBCCBSCBBSBSCCBBCBSBCBBSCBSCBCBSBSCSCSSBBBCBCSCSCBSBCSBCCCCCSCBSBCBSSBCCSSSSCBSCBBCBCBSCCSBBSCSSCCSBSCCSBSCSCSSSBSBBSCCCBBCBBCSBBSBCSCCCBCBBBCCSSBBSSCBBBSCSCSBSSBBCBCSSCCSCCBCBSSBSSSSSCBCSCSBSCBSBBBSCSCCBBSSSBCSCCSBSCBBBSBBSCCCSCSBCSCSCSCBSSCCCSSCSBCBSBCCBCSSSBBCCBCSSCCBBCSBSSBSCCSBCCSBSBSCBSCBSBBBSSCBSCBBCSBSBSCCCSCCCBSBCBCCSCBSCCBBBSSSSBCBSCBBBBSBSCBBBBBCBCCSBSCSBCCBCCBCSCBCCSCSSBBSCCCCSCSSSCBCSBCSBCCBCCBCBSCSCSBBCBCBBCCBSCBBSBSCSSCCCCCCBBCBCCBCBSBCSBSBSSCBSBSSSSSBSCBBSBSBBCBCCCBCCSCBCSSCCCSBSCSCSSBCSBSCSSCBCBBCBBBSSBSCBCCSBBSBBSCSSBSCBSSCSCBBSSCCCBSCSBSCBCCSSCCSBBSBBSBBBSBBSSBCCSCCBBSBSBBBSSCSSCSCBBBBCSCBBSBSSBBSSSSSBBSBSSBSSSCSBBSSCSCBBCSSBBCCBBCSSSBCCBSSCSCSBCBCBCCBBSSSBCSCSBCSCSBCSCSCCCSSBSBBBCCBCSSSBBBBBSSSBBSBBCBBCBCSCSBSBCSBBSSBBSCBSSSCSSCSCCBCBSBBSSSBCCCBBSBCBSSSSCCSBBBBSCCBCBBBBCCSCSSSCCCCSCSBBCCBCBBSCSSSSBCCBSSSBCSCCCCSSBBCCBBBBCBSCCCCBSSSBSCSCSBSCCCSBCSCBCCCBCCSBBCBBBBCSBBBSSCCSSBBBBCSBCCBSCBCBSBSBCSSBSSBSBCSCCSBCBSCSSCBBBBSCSSSBCBSCCBCBSBBCBBBCBBBBSCSSBCCSBBBCSBBSBCBBBBBBCCBBCSBSSSSSCCCBBSBSSCCSCCBBBSCCCCCBCCSCCBSSCSSBCCBBBBBCCBSSSSBCCSBBSSSCSSBBSSCSCSBCSCBBSBBCBSSBCCSCBCBBCSSCBCSBSSCCCBSBSBSBCCCSCSCBBSBSBCBCSSBCCCCBCBCSBCCSBSCBCBBBBCCCBCSSCBCBCCBSSCCCSCBBBSCCCCCSCBBSSBCCCSSCSBBSCSCSCBSCBBSSCCCSSBBCCCSSSBCSBSBCBSBCSCCBBSBSCBCBSSSBCSBCSBBBSBCCCBCBSCCSBSBSSSSSCBCCCCBSBBBBSSCSCBCBCBBSCBSCCBBCBBSCSBSBSBCBBBSCSSSSBCBBBBBSSCCSSSSCCCSSBSBBCBSCBBCCCSSCSCCCSCCCSBBBCCBCBCBBBSSSSSSSCSCCCCBCSSBBSSSBBSSSCSSBSBBBBSCBSSSCCBBCCCCBCSBSSCCCBSCSCBCBSCSSSBBCCCBSCBSBCBBBBSSCSBBCCSBBBSBCCBSBCBCBBSBBBCCSCCBCBSBCCSCBCBSBBSSCSSBCBBCSCSBCBSCBCSBSCBSSSSCBCSBBSSCBSSCBBSSBBCCCSCBSCBBSSCBSCCSBSBBCSBBCCSSCBCCSBCCBSBCBSBCBSBCSCCSBSCBSBBCSBCSCSBCSSCBCCCBCBBCSBBCSBCSCSCSCBBSBCBBSSBBCBCCSBSSBSCCBBBBCSCSSSCBCSBBCCBSSSCBBBBCSSBBCCBSBBSCBSSBSCSSBBSSBSCSBSBSCBSBBCSCBSBCBBBBSCBSCSBCCBBSSBSBCCSCSCCBCCBBCBBBCBCCCBSSSSBSSBSCCSSBSBSSSBBSCSBCCSSSCSSSSSBBBSSCSBSSCSCBCBSCSCBBCBCSSCCBCBCCSBCCCSCSCBBSBBBBSBCBSBBCCCBBBSBCBSBBSSCBCCBBSSCSCSCSCBBSBBBCCBCBBBBSSBCBCCCSSSCSBSBBBBBCCBSSSBSSBCBCCSBBCCCBSBSBCCSBCCBSCCBBSSSSCSCCBCCSBSCBBBCCBBSSBCCBSSCCSBCSCSSCSCCBBSCCBCSCBSCSCBSCSSSCSBBCCBCCCSBSSSSCCBCBCBBSBCCSBBBBBSBSBBBCBBBSCSCSCBCCSSCSSBBBCBCSSSSCSCCCSCCSSBCSCSCSCCBCCSCSCSBBSSBSBCSBCSSBSSSSBBBSSCBCCCSBCBSCSCBCBSCCCSCCCCCCCSBSSBSCCSBBCCCBBCCBSCSCSCCBBBCBSSSCSCBBSSBBSBSSBSCCSBSCBSBBSCCBCBSCSSBCSBSBCBBCSSSSSSBBBBSSBCCSCBSBCCCBBSBBCBCCSBBCSSSBBBSBSCBBSCSCSBSCBCBSSSBCCBBSBSSBCBCSCBSBBCBCCCBSBBCSBCSBSCSBBCSBBCSCSSSSCSCSSSBSBBSBCCBCSSCCSCSSSCCCCSBSCCCCBBCSSSBSSBSBBSBBCBSCCCBSBBBBBCBSCSSBSCSBSCCCSCSSSBSSCBCCCSBBBBSSSBBBCBBSBBCBBCSBCCSBSBSCBBCCCBSCCBSCCCCBCBCCBSBSBBSSBSSSCBSBSBCBCCCSSBCCSBCBSCSSBSCBBSSSSSSBBSSSCSCBBSBBCCBSCBSCCSSSSBSSCCBSBBCSSBBSBBCBCSSCSBCCSBBBBBCSCCBSBSBBBCCSSSCBBBBSCSSSCBSCBBSCSSBCBBSCSSBCBSBBSSCBBCCSBBBBSSCCBSCSSBSSBCBSSCSBSCBBSCBSBBSSSBBBBBBSCSSCBCSBCBBCCCSBCCCCCCSCBCBCBCSSBSBBCCBCCCSCCBCSCSCSCCBSSSBSSCCSCBCCCSCCSBSCBSSSBSBCBSSCBCCSBSSBSCCSBSBCBCBSBCSBBSCCSBCSCSBCSSSBBCCCCBBSSCCBCSCSCCSBSSSCSBBBSBCCCBSSSBSBBSSBSCCCCCBSSBSCCSBSSSSCSCSBSCBSSCBSBSSBCBCSCSBCSCBSBCCCSBBSCBSCBSSSCBBBBCBBCBCBSCSSSBBBCSSSBSSBBSBBSCBCSCBSCCCCCCBBCCBCSBBCCCCCSBSCBBSSCCBBSSSBSBCBSSBSSCCCBCBBSBSSSBCSBBSCCCSBSCCSBCBBSCBSCBCSSSCBSCSCSBSSSSBBSSSSBBCBCCSBBSSSCSSCSSBCSCCBSSCSCBBSBCCSCSSCBBSCSCSSCCBSCCBCSSSCBCSCSCCCCCSCSCCSCSCCSSSBSSSBCSSBSCCSBBSBSCCBSCSSBBSSSCSCCBSCCCCBSSCBBCCSSSSCBCCSBBCCSCSSBCBSBSCSCCSSBBCCBCBCSCSCSBCSBCCBSCCCSBSCCCBCCBBCBSCBCCBBCSBBCSBSBCSBBSBCBBSSBBCSCCSBCSCCCSSBBSBSBSBCSBSCBCBBBCBSBCCBBBSSCSCCCSCBSBCBSCSBCSCSCCCSCCSCCBSCCSSSSSCSSBSSCSBBBCSSBSCSCBCBSCSSCCSCBBSSBSBCSBSBCSSSCCBBSCCCBCBSSSBCBCBSBCCBSSCBCBCSSCCBCBBSCBBBSSCCSCBCSCBBCCBBBSCBSCSBSCBBCBBSBCCSSBBSSCBBSSBSBBBBSBBBCSBBCCCCBCSBSSSCBSBSSSSCBCBCSBCSBCCSSCBSBSCSCCSSCBBSBSSBBSSBCCBBSCCSCCSBBSBSCBCSSBSSCCSCSBBBSSSBCSBBCSBBSCSSCSCCSSCBCSSBSCBSCBBSSSSBCCCBSCCBBBBCBSBCSBSSCCBSSCSSBSSCSCCBSCSBBCBBBSBCCSBSBSBCCSSSBSSCBSSSCSCBCCCSBBCSCBBSCBBBSBCCCCBBCSBSBBCSBSCSCSBCCBCBSSBSCCSBBSSCBCSBSBCSBSBCCBBSSSBSSSCBSCBBSBCSBBSSSBBSSCCSBBBBCSSBBBBBCSSSCCCBBBSCBSSBBBBSCCCBSCBCCCCSCBBCSSSBSSSCCSBBCSBBBSBSBBCSCSCBCBBCCSSBBCSBSBSBSBSSCCCSSSBCSCBBCBCSCBSBCSBSSSBBSSBBCSBBCCBSBBCCSCSBSBCCCCSSBSCBCBBSCCBCCCBCSSBSSSSBSBSCCCSBCSBCSCSBBSCSBBSBSCSSBSSCSCCCSSBBSSBBCBCBCBSSBSBCSSCCSBBBCBSSCSBBCCSCCBSSBCSSBSCBBSCBBSBCSCSCCBBCCCSBBSCBCCSBBBSSSSSBSCSBSSCBSCCCBBSCCBSSCBSCSCCBCCSSSBCSCSSCCBBBSCCCBSBCSBBBCBCCBCSBCSSSSCCBCBCCBCSCBSCCSCBCSSSSBBBBSSCCSSBCCCSCBSCBCCCSCCCCCSSBSCBSSBSCSBSBCCSBBCSCBSCSBCBCSBCCCBSSSCCCSBBSSSSSSBBCBSBSBSCBSSCSSCBBBSCSCSSSSSCCBSSBSSCSCSCCBSBSBSSCBBBCSCCSSCBBCBSCCSSCCBBBSSCBSSSBCCSBBCCCCSSCSCSSCSCCSSCSSBBSBBCCBCCCBBBCBSBCCSCCCCCBCBSBBSCSSBSBBBBBBBSBSBCSBSCSCSSSBSSBCSSSCBSBSSSCCCSBSCSBCCSCSBBSBCCCBBBCCSBBCCCCCCSBCCCCSBCSBSBBCBSBSCSCBCSSBSSSCSCCSSBSBCCBSBBBBSSSCCSBCBBBCSCCBSSCCSBCBSCSBBBCBCSBCBBBBCSSCCBSBBCSCBBSCSBSBBSBSCCCSSSSBSBCBCCBCCBSCBCBSSSCBCSBCSSCCSCSCBBSBCSCCBSCSBSSBSSCCSBSBCCBSCCSSBSSBCSSBBSCCBCSCCSCBBBBBCSSBBBBBCSCCSBSCSSBBBSSCSBCBBSSSCBBCBCSBCCSSBSBSBCSCBSBBCCCCBBCCSCBBSCBSBSCSSCCCCSSBCSBBSCCBBSCBCCCCCBBSBBSSCBSBSSSCSCSBBCBCBCBCSCCSCSCCBBBBSCBCCSCBBBSBCBBBBBSCCBCCBCBBCBSCBCBBCSBSBCCSCSBCSSBSCCCCCCBBSSBSCCBCBBBCCSCCSSCSSSBBBSBBCBSBBBCBBCBBCSBSCBCSCBBSCSBSSSCBCBSBCCCSBSBBCSBCBBCCSBBSBCSBSCCBSCSBSSCBCCBBSBSBCCBSCBSSSBSBBSCSSCBSSCCSBSBSSSSSSBBBCSCBBCBBBBCCCBBSSCCCSCBBCCCBCCSBCBBCSBSSCSSCBBSCSBBCBCSBSCBBCCSBSSBCBCCBSBSCBBCSSBBBBCBSCSBBCSBSBBCSBBBSBBCCSCCBSBBSCCBBSCSCCSBSBBSSBBCSBCBBBSSSCBCCSBCCBSBCBBCSCBBBBBBCBCBSBBCBBCCBSBCCSBCBCSSCSCCCBSSCCSBBCCBBBBSCBCCSBSBSCBSCCBCSBBBSSBBCCCCCCCBCCCCBBBCSSCBCBBBSSSBSBBSCBCCCCBBBCBBBBSBSBSSBSSCBBSSSBSCSCCCCSBSBSBCBSSBSCBCCBCCBSSCBBBBBSCSCCCSCBBBBCCBCSBCCBCCBBCCSBSBBCBCBCSSBCBCCCSSSBSSSCSBSBCCBCSBSSBBSBCCSSCSSCBCSSBBSBSBCSSBSSSBBBBBCBSSCCSBSSBBSBBSCSSCBCBCBSCSBCCCBCBBSBSSBBBCBSSSBCCCSBCCSSSBBCCCCBCCSSCBSBBBCBCCCSSSBSCBBCBCSCCBSCSCBSBSSSSBBBSBBCSCBCBSBBSSBCCSBCBCBBBCBCCSSBCSBCBCBBBBBCCCCSCBCBSCSSCCCBBCCBBBSBCCBCBSSBBSBSCCSSSBCSCSCSCSBCCBSBCSCSCBSCCSCBSBSSSBCSSBCBBCCSCBCBSSSBSCBSSCSCCCCCSSCCCBCBBBCCCBBBBSBCCCSBBCCCBSSBSCBCSSBBSCCSSBBSCBSSCCBCSSBBSBSSBSCCBSSSBBSBSCSCSSCCCBCCCSCBBSBCCSBSBCBBBCCBBCSBCSSSBBSCCBBCCCSCCBBBCCCSSCCCBCBSCBSBSSSCBCBSBBCBCBCSCBSBCSSBCSSBSSBCCBCSBCBCCBCSCCCSBSBBBSSCCSCSCBCSBBCBCCBCBSBCSBSCBBSBCCCBBCBCSCBCBSBSSSBSBBCSCBCBBBSCCCCSCSBCCBBBSSCCCSBCSSSSBSBBCCBBSCSSSCBBSCCSBBCSSBBSCSCCCCCCBBCSCSCSBCBBSBSSCCSCBBCCSSCSBBBCCSSSCBBSBSBCSCCSCBCBSSSSCBBSCBBBBCCBSCCBSSSCBSBCCSBBCBBSBSSCCBBBCCBBSCCBCBSSCBCSSSCCSBBCBCBSSCSSBCCSBSBSSSSBBBCBSSSCBBCBCSSSCBCSCSCBSCSSSSBSCBCCCSSSCCSBCCCBCSBBBSSSCCSBBCBBSBSCCCCBBCBSBCBBCBCBBCSSBCCBSCBCBCBBSSBBBCCCSSCSBBCSCCSBBCBBCCBCSCCSBCBCSCBSCBCCCBBBSBCBCBCSBBBCCBCCBSBBBSCBCCSBSCBBBBSSCCBSBCCCSCSCCCCSBCCSSSCSSCCSCSBBCCCBBBSSCBBCSSCCCSCCCBSCCBBBBSSBBSBBSSCCBSBSBCSSBSBBBCCBBSCCSCSSSBBBCCBSBBBSSCCCSSCBBCCBBCSBCSSSSCCBBBSSSBCBCCCBSSSSSCSCSBBSBBBBCCSCBBCBBBSSCCSBBBSCBBSCCSCBSBSBBSSSCBBCSCBBCCSBBSCCSCBSSCSBBCSBCSCSBCCCCCSSBSSSBCCSSCCSCCBBCSSCSBSSBBBCBCSBBSSSBCSSBSSCSBBSBCBBBBSBBSSCBSSSCBBBCBBBSCBCSBCBSBCCCCBSCCCCBSCCCCCBSSCBSBCBSSSSCSCSBBSCBCSBCCCBCCBBSBBSSBSCBCSCSSSBSBCSBSCSCCSSBSBBCCCCBSCCSBBBCBSCBSCCCCBBCCBBSSSCBBSBBBCSSSBBCBBSBCSBCSSCBBCBBCBSSSSCSCSCBCSSSBCBBCCBBBBCCBCBSCBBCSBSSSCCSSCSBCSBSCBSCSBCCCCBCCSSSBSBBSCSSSBCBBCBSBSSCSBBCBCSCBBSBSBBCCCBBBSSSCSSSBBBCCSSCSBBSCBBBCSSCCCCBCBBCSSCCCBBBSBSBBCSBBSSCBBBCSSBSSCBCCCSBBBCBSCBCSCSBCCCSSSSSSCBBSCSCBCCBBSSSBBBBBCCCBBCCCBBCCSBCCCBBBCBSBCBCBBBCBBSCCBBBSBSSSBBCCCSCBSCCBBBBCSCSCCCCBCSCSBBCBCBCSBSSCSSBBSCSSBCBBSBCCCSCCBBSBSBCCSCSSSSBBCBCCSCBBCBSBBSSSCCSBCCBCSSSCBSCSCBCBBBSBCBSSBSBCBSCBBBSCSCBBSBSCCCCBSBSCSBCSCCCSCBCSSCCCSBCSBCCBBSSCCSSSBBBCSCCSSCBBBBSSCBBSCCBSSCBSBCSCBSBSSCSBBBSBCBSSCCCCCCSBBCBBBBSSBBCCSSBBCCCCBSSCCSSCBBCCSSSCBSCSSCCCCBSSSBCBBCSBCBCSBCBSBSBSCBSSBBCCBBSCSCBCSSCSSBCCSCCBBCBSCSSSBCBBBCSSCBBBSCBCCBCBSSSBSSCBCBBBCCCCCCCCSSSCSBBSBCBBBSSSCSSBCSCBCSSCCBSBSSCCCBBSBBSCCSCBSSBSSBCCCCSBSBSCCSSCBSBCCSSSBBCCBBBCSBBSCBSBSSCCCCSSBCSBSCSCSSSSSSBBCSCCCSSCCBCCCSCBSSBBBSCSCCBCCBSCBBCCCBSBSBSBBSBBSCSBBCCSBSBBCCSSBCCSBSCSBCCCBBCSBSSSCCCSCCCCBCSCBCBCSCCCSCSCBCBCBCSBCSCCCBCSCSSCSCSSSBCBCCCBCSCBCSBBCCBBSBBSSCCCBBCCSSCCSSSSSCBSCBSSSSCCBBSBBSCSCBSSCSBSCBCBCBBSSBCSSSSCCSCSCBCCBSSBSSSCSCSBBCSBSCBBBSSCCSSBBSCCSCSCCSCCBBCCSBSSBSCCBBCSCSBSSSBSBCBSCSBCBBSCSSBCCSCCBBBBSSSCCSSBCBCSCSSSCCCBSCSBBCCCSBCSBBSSBSBBSCSBCBSCCBSBCCSCCBBSBBSBSCSCBCBCSCBCCCCCCBSCCBBBCSBSSBSCBBBBBSBSCSCCSCBSSCSBCBSCBCBCSCBCBSCBBSCBBBSCSBSCSBSSBCCSBSSCSCBCBBSSCBBCBCSCSBCCCSSBSSSCCSCCCBBSCBSSCBCCBBCSBSCBBSSSCBSCSBBBSSCBCBSCSSCBSBBCBCCCSCBCSSBCSSCBSBCSCBSBCBCSBSSBCBBSCSBSBBSBCBBSBSCBSSBSSCBBBBBBBBBSCCSSSCBCCCSSBCCSSSSSCCBSSCSBSCCSSBSBSSBBBSBBCCSSSCBSBCBCBBCCCCBCSSSCBBCCCCSCCBBCSCSCCSCBCCSBCCCSSBCCBSSCBCBCSSCBSCBSBCBBCSSCCSSCSCCSCSCSBBSBCCSSCSCSBBCSSCCSCCSSCCBBCCBCSBCBSBCBBBBBSSSBSSCBSBBCSCBBCSSCBBSCBBSBBSCBBCSCSSCBBSCSSSBCSBBSBCSBBBSBCSCCBSCBBCSBSSBCBBCCBSSBSSSBBCSCSCBCCBBCCCCCCBBBSSBSSSSBBSSCCCCBCBBCBBCBSCBSSCCBBBBSSBSBCSCCSCCBCSSBSBCCBBSCCSSBSSCSBSBSCSBCBCBSSCCSCBCBBSSSCBSSSCBBCCBCBSBSSBBCBSCBSSSBCBBSSSSBBCCBSCBSBSBBCBSBBSBSBBBSSCCCBBBBBCBSCSCCCSBCCCBBBCSBSCSBBBCBCBSBBSBCBCCSSBSCSSCCSBSSSSCSCCSBCBSBBBBCBBCSBBBCCSBCBBSSCBSSBSCCSCCCCSBSCBBCCSCCBSBCCCSSCSSCBSBSCCSSCBCBSCCBBSSBBSSBSCCSBBSBBBSCSSCBSBBSSCSBSBSSSSBSBBBBSBCCSBBSSBBCBSSSCCSSCSBBBBBCBCBBSSCCSBBBCBSBSCBSBCCSCCCCBBBCSBCSCCBCSBCCBBCCBSCSSBBSCCBBCSCBBSCCCSBCSCSBBBSCSBCCSCCSCSCCSSSSCCSBBSSBCSSSSSSBCCSSBSCSBCBSCSSCSSCSCBCBSSBCBSCCBBBSCSSBSCSSCBBCSCBCSBBBBBBBBSSBCSBBSSSBSBBSBBCSCSBBSSCBSCBSCSBBCCSBCBSCSCSBSSBBCCCSSBCBCSCBSCBSSSSSSBSSSSBSSBSBCCCBBBSSBCBSSCSBSBSCCBSSSSCCBCSBBCBSBCCBBCSBCCCSCBCBCBCBCCSBCCBCCBBSBCCBCSSSBSSSBCSCBBSSSSBSBCBSCBBBBSCBBBBSBCBSBCBSBCCSSSBSSSBCSSSSSCBCBSSBCBCCCCSCCSCCSBBBSSBSCBSCSSSCCSBSCBCCCCCCBSCBSCSSSBSCBSSSCCBCCCSBSBCCCSCCBSBSBBBSBSSBCSCCSBBCSBCCSBBSCCSBSSBSSSCCCCSBCCCBBBCBBBCSSBSCSBCCSSBCBBSBBSSSCCSBSSCSSSCBSCBSCSCSSCCCCBSSBBBCSBSSBSSSCSSBBCCBSCCBSBBBCCSCCCCSBSCBBSBSSSSSSCSBBBSSBCBCCCSCCBBBBSSBBCBBCSBBCCBSCCSCSSSCCSCCCCSSBCSCSCBCBBBBBCBBSSSBSCSBCCCCBBBBBCBCBSSSSCSSSSCSCBBBSCCSCSSCSSCCBBBBBBBBSSCBSCCCSBCBCBSCSBSSCBSCCCSSBCBBBBBCCBCBSSBBSSSCBSBBBBSBCBSBBBSSBBSSSBSCCCBCCBCBBBBBCBSBCBSBSSBCBCCBBSBCBBBSCCSCSCBSBSCBBSSSBSSCBSBSCSSSSCBBSCBBCCBSSSBBSSCSCSCSSBCBSSCCCBSBSCSBSCCSBCBBCCBSSCSBCCCSCSCBBBCSBCBBCBCSBCBSSSBCCCBCBBCBCCSSSCSSSCBSBBCBCCSCSSBBCCBSCBCSSBBCCBSBSBSCSBBSCBSBCBSSSBSCCBSCCSSSSBSSSCSBCSBSBSSCSBSBBSSCCBBCCSCSBBCBCCSSBCSCCSCBCBCCCCSSSSSSSBCBBCSCSSBSBSBCCCSBSCSSSBBCSSCCBBCBBBSSBSCBSBSBSBSBCSSCSBSCSSCSBSCBSCCSBSSSCSSBSCBBSSBCSBBBSBSSCBSSBSSCSBCCCCCBBCBCCBCSCBBSSCBBBBBBSSSSCBSBCSBBCSBSSSBCSCBSBCBCBBSSSCSCCSBBBCSSCBBSBCBBBBCCCCSSSBSSCBBBCBSBCCCSSSSBSBBSCCSCCSCBSBBCCSSSCSCBBBSCCBSBBSBCCBSSSSCCSBBSBBCSSCBBSBBSCBSCCCSBSSSSSSSBBCSCCCBBCCCCBBBSSSSCCBBBSCBCBCSCBCSCSBSCSBCCCSCSBSSSSCSBBSCCCCBCBCCCCCCSBBCSBBCSSSBSBCBSSBBCCSSBCCBBSCSCCSCSCBBSBCCSSSSCBCSSSSBBBBBBBCBBBSCBSBBCCBBBCSCSBBBSSCCCSSBSSSCCSBBBCSSCCCCBCCCBCSSBBCCSSBCBBCCCSSSBCSCCSSBCBBCBBSCBBSBCCCSCBCBSBCCCSSBCBCBBCSBSCSCCBBCBSCCSBBSSCCSBSCCBCBBSBSCSSCCCSSCBSCCCCSBSSBCSSSBCBCBCBBCSCCSBSBSBSBBCSSBSSBSBSBBBSSSCSBSBSCSBSCSCCCBSBSSBBBCBBSBBSSSCBSCSCCBSBCBCSBSSSCCCBBBSSSSBCSSBCSBSSCSSSSBCCSBBCBBBBBBSCBCSBSCCCSSSSSSSBBCCBCCSSCBBCSCCSCSCCCCBCSCBCSBCBBCCCSSBBCCCSSBSCCBCSBBCCCBBSSSCBSCSSBBCBSCCCSBCBBSBSSSSSBSCCBBSCCBSBSBBBCBBCCCSBCBBCCCCBCBCSSSBSCSBBSBBBSCCSCBBCBBCBCSCCSCBCBCCSSSSSSCCCBBCCBSCCSBBSBCSCSCCSCSCBSCBCCCSSBBBBSCSBSBBBCCSSCBSCCCSCBBSCCBSCCCSSBSBBSSSSBBSCBBBBSSBCBBCCSBCSCBBBCSSSCBBSBSSCBBCBCCCSCSBSBCBSBSCBSCBBCBSCCSSBCSCBSCCSSBSBSBSCBSBCSCSSCBSSSBCSBSBBSSSBSSBCSSSBSBCBCBSCBCBSBCBBSBCCCBCCCSBSCCSSBSCBCSBCSSSBCCCCBCBBBBCSCCCBSSBSSBSBCSCCCSCBSBSSCSCBSSCSBSBSCSBCSCSCBBSCSSCCBSSSBSSSSCSSCBBBCSCSSCSSSSBSBCCCCBSSSBCBBCSSBSBSCCSSBCSCBBCBBSSCBCSCBSCCCBSBSCBBBBBCSSSCSCSCBCCBCBBSBCSSSCBBCSBSSCCSBCSBCBBBSBSSBCBSCSCBSSSBSSBSBCBBCSCCCCCCBBSCCBBBCCBCBSSBSBBSCSSCSCSCBCBBBCSCSSSSBBBSBBBCBBCSBBSCSCSBBBCSCSSBCBSCSSSCBCBSBSSBBCSSCSCBSSSCBCSCBBBBCBSCSSSBCSCCCBSSSCCSCSBBCCSCSBCSBSBCBCCBCBSSCSCBCSCCSCCSCCBBSCSBCSCCSCSBCBSSSBCSSSSBCSSSBSSBBSBSSCSCCCCCBSBSSCCBSCBBBCSBBCBBSBBCBBCCSBCBBSBBCSCSSBBCBBBCSCBBBSCCCBCBBSCBSSCSSSSSCBCCSCCCBSCBSCSSBCBSSSCSCSBBCCBBBBSSSCCSCSBBCBCSSCBCSBCSBBBCSCSCCCBCSSSCSCCSCSSBBCBBBSCSSCBSSSCCBSSBBSCCSBSCSBBBBBBCCCBCCBCSCBBSSBSCBCCBSSSSBSSBCCCSBCBCSCSBBCCBBBCCSBSBBBBCBSCCBBSCCCCCBCSCCSSCBBSSCCBSSCCSCSSSBCCCCBCBSCCBCBBCBSSBSCCSSCBSBSCCBBBCBCSSCCBCBCCBCBCBCBCCCSCSSBCBBCSSBBCBCSSSBSSBBCSCSBSSBBSSSCSCBSSSSCCBCSBSCSBCCBBSBBSSCCBBSSBCCSCSBSSSCBSBBCCCSSCSCSSSBCBCBCCBBBBSBSSCBCBSSSCCCCCSBBSSSBCBBCBBSCBSSCBBSSBBSSSBSBSCCBBSBSCBBBBSSSCBSSCSBCCSBBCCSSBBCBCSSCBCSSBSSCCSSBBCBCSCBBCSCSSSSCSCCSCCBBCSBSSSCCSSSSSSBSCSSCCBBSSCCSCCBSSBSSSSBBBBCSCBSCSCBCCBBBBSSCCBCBSSCSBCSBSBBSCCBSBSCCCBBCBCBSSSBCCSCBSSCBCBSCCSBCSBSSSBBBCCBCBCBSBSCSBSBBSBCCSSCSBSCBSSBCSBBCCBBSBBSSCSCCBCBCSCSSSBBBCBCBSCSSBBCBSBSCCBBBSBCSCBBBSBCCSSBCSCBSCSCCBBCBSSSSCBCSSCCSSCBCBCBSSCBSCBSSCBCBCSBBBBSSBSSBCCSBCBBCBSSCBBCCSSSSCCBBCSCSCBCCSBBCCSSSCSCBBCBSCSCCCBBCBCCSSBBSSBBSBBCBCSCSCBCBCBSCSSSBCBBSBSSBSSCCCBSSBSBSSSSCCSSBCSSCBCCCBSSSCSSCBBBSBSCBBSBBCBBCBCSBBBCSBSBCSSBSCCBCSBBSBSCCSBSBCSBSSCSSCCBBBBCBBSBSCSSCBSCSSCSSSBSBBSSBCSCBBCBBCBSSCSBSCSSBSCSSCSBCBSCCCCSSSBCSSSBBSSCSCCCCSSBSSCBCSBBCSBSBBCSBBBSCCCSSCBBCBCSSBSBSSBBBBSSSSCSBCCSSSCSCBCBBBBBSSBBCBBBSCBCCBCCSCSSBCCCBBCSSSSCBCSCCBSBCCBSBCBCSCSCBBBSCSBBCBBBSSCCBBSSBBSSSSBCSCSBSCBBSSSSCSCSCSCCSCCBSBCSCCSCCCBSCBCCBBCBSBBBCSSSBBCCBBSBBCCBCCCBSCSCBSSBBCBBCSSCBSCSCBSBBSCSBBCCBBBCCSBBCCBCSSBSBSSCBSBBBBSCSCBSSCBCBSBCCBBBSSCSCBBSCCSSCSCCCSCSBSBBSSBBSBBSCBCSSSBSSBBBCBCCSCCBCSSSSBBSBCSCBBBBSCCCSCBBBBSCSBBCCCSBSCCBBSSSCBCCBBSSCBSCBCSSCBBBSSCSSBCSBCSCCBBSSBSSBBBBBSBCBBSSCSCSBSCCSCBCSCBCBSBCSCCBBBCCCCBSBBCBCCCCBSSBSSSCBBCCBSSBSCCSCCSSBCBBCBCSCSBBSSBCCBBBCSCSSBBSBSSCBCCSCCBSSBBBBCCBCCCCCBCBBSCBBSCBSBCBSBBCBSBBBCSBBBCSCCSBCCSCCBCBSSSBBBBBCCBCCBSSSSBBSCSSBBSSCBSSSCCSBCBCBBBSCCSSBSSCSBSCBBBCBSSSCSSBCCCBBBBSSSSCCSBBCSCBBBCBBSCCCCSCSSSBBCBBSBSSBBBBSBCCCSBCCCSBSBBBBBCCCBBBBBBCCBCBCBSSSSBCBCCSCSBBSBCSBBBCBSCBSSSBSSCSBBCCCCSCSCBBCSSBBBBCCBSSBSSSBBBSCBCSSBBSCBBBCBBBCBBCSBBCBCCSBCBSSCBSBSBCSBCBBSCSBCCSCCSBCSBBSCCBSBCCCCCSCBBSCSSCSCCCSCBCSCCCBSBBCCCBBSCSBSBSBSSCCBBBSSCSSCCSCBSCBSCSBCSSSSBBCSBBSSCBSCBSCBSCBSBSCSBBSSBBSSCBSSBSSCBSBSBSBSSCCBCSBSBCSBBSBSBSBSBBSSSCSSBSSSSBSSSBBSBCCCBSBBCCBBBCBSCCSBSCCBBBCSSCCBSCBBSSSCCCCBCSCBBSCBSBCCBSBBCBBCSCCBCSCCCBCBCBBCSSBCSBSBBSBBSBBCSCCSSSSCBBCSSCSBBSSCSBBSBSSCSBCSBBSBSBCCSBSCBSBCCSSCSSBSCBCBCCSBSSBSBBBCCSCCBCSSCSSCBBSSCCBBSSCCSBCBBBCBBBBCSBCCSSBCBSCSSSCCCBBBSBCSCSBCCSCCCBCCBCBSSCSCBBCSBSSSSBCCSCBCSCSSSSBSBBCBBBBSBCBBCSCSSBSBBBCCBBBBBCSCBCCCCSBCSCSCBBCCSSBCCBCBSBSBBBCBBBCBSCSSCCBBCBCCSSBCCSCSSSSSSBCSBCBSSBCBSSBCCBBCBCBSCCBBSSBBSSSCCBBSBBBCBSBSBBCCSSSSCCCBCCSBCBSSSSBBCBBCBBSBSCCSCBBBSBSSSCSBCSCSSBCCBSBCSCSCBBCBCCCCCCCCCSCCCSSCCCSBSCBCSSBCCBBCCCBBCBCCBCBCSBSSSCSBCCCSSSSCCCBSBCBBCBBCCCSSCBBCSBSSCSSCSSSBSCBCCBCCBSSSSCCSBBBBCSCSCSSSBBBBCBSSSCBSSCCCSBBSCSBSBSSBBCBSCSCCBCCCCSBSSCSCBBCSCBBCSCSSCCBCBCBCCBSBCCCCSBCSSSBCSCSSBBSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCSBCS
