ELF( 4 4 (̰ ̰ Qtd$$p ̰ ̰ ̰ S,b  ::P``܉܉@@$<$<XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxذ   @9*5 .9 .LqO/::_L-Nh+d$.jm*"iXRh'|Hd'/M}a &u`$' *"KdW%U [m!cx't_23_NiFRYؙKX#]2 UT $<<$?(9!$h4q^ > M~iy8<\aex`RxePa~>`_:xc2[ x!U L\= ǨdM&I\\cyx7~=$.4 ^4q8/&~9|P v#a_+(|pL!+ XjOR>73 *a| 3E pR-˫MA`,h)2]-UH{`4\Lb~}(:4d\:mP8anL'B7kRd6{$&&A`.h&cd}D ;0T@}ZuDշr{ =~pE,֕#\,Ѩ<8#4UX8`xL|=ӷ*04q|VL BcjM  /:;!O`Nn<l)d/<BU NRme I,!4p [? j`$!#R}4]9 *op  0P6]=,h0. #^@MPd%&0V ] X<*l5Rho/W h+qsl؉9UEps8 j()>c T% OPv#,d|We0]%?hbQ jZ|pSpaj[% ׳ej F;N)wa@3]43$ 7c 7yD  4"%DQ;Ut`A<:`e2 *7D1,1 X?2 PD{<zż8\@+ ?91e)V p+)|&תE|AT:* DU}8?f4-URg,IP[} h Xݘ;P%P80\p.v shTr= 1 2?f%nX" V%Tb u!M6 k0J<4|(7g6[>r_]3 B:\ƒ5  t$bO ed.xc~#hc2p,I:jL / kQTlg92>D2Jx#]$Q PVw')lc&F;> @begb,ENUYș*MaxHch}| ) .#+_ X` Yz}$;he.w:\g- 66ZX   &C:qSm'Ox]>*Wt [ 47js '\@:\QzeŠHG AP:E,:h CfGA4:< JA^HT"T~&],I\8A: !-Bb_S`lpi:8(ZmpV'PCAvb#)<$h (̔N.7tl(z! AmwA ")2*m <  z5d8@:{/-W T`x?-&2&a`a(jr G X'$&OtH5H DsGY20VnM' :W= ^+fp D@)% h w77} t!0mS`@J<{+|3ߚ |AbR>dS59 helgAʖ.Ey K<pPE7|dr2 t~ 0"< zRm'-6$B/8:p/bhS csf  |}&Z  K= u/jD$;~cor z_pn l(b^[:v(}w * &H<omd](K< 3)Z &eS@,V:1T'; qzߔ^fx(rL'P^MuB m >\O}TD)8pB2u u U"{ T"v'9; +F|;:.ͯ.({s~5 7$815#TeR:t@F,8DLO`eK9z y/Q. >LBd:AH:-;T"@:6Y"Ip@:A% ?9oJ8:I >'S?="S $i8_&(#$;80i Vh*Qb.]0ULWK 9t$AI9g;*)/t/H$0 $Nd@Vx^1@o$:& @O:l@O%%pc,NPi7$aT]#sc =. X8D|)[7DP>TuWx<̧{<:=81yj V 3_ț5 \КzG *~o2+w$(8}> !q<G(A6<bњ"oU>T4 %X8AP ʶi`Rxg`eV/ ~"IH P \M-i sd6&5XMuQlY = (dvj\-=$ (AnwWk2N1Ev&Q]Sm;=$*ř u%ds#@ :BF;B;\duN; qq%e8h} n.U< 8< .%Z[ppQltOqGd:**SkX9..l @  Ti&XͥH7n;"lRqzF'UHf`]e}HoI|0D Ft;aPv/U* BRjX."aPXSW),3,u  S"WH  ,X\Ѳ mjQ%$EVt  $1P) 0+)r8I+i!&7[Ň2Kdb<o 5?8.ѯ`^$f@:35djZ.,5B=y4]9(o0] O` kV<"0c/ {g5UssZro%V<c|-; I}*!CU{r'D3jzmU!2i-ѫ*BC({v*b6P XV(|Y@}Z(_78dA NA{( /2:8) |l8}0~g1QسhA 7T,2Vć#MU+ig}Il}̗a|5U,i&*ZCY|U},xwV,S!DA(:9G <ešll7m2i4do2w98   |Drq=|0)!:,8j+ ,8H<<eTPuWD N-F<c,O TA h8HL<~@!)&aH `-:B2f0;eN <9  7c;xr%>4.p%QUw!*DW6d\ ,r?v$I}>,JI3`8dHT<$ e hA$:Iar,Mjv{|65A\S7= 0vc %LW,@H(P-e.[$6$$(?n|A`:[˔?9&^|,s04N]  E}'"  OI>!l Sj2c x<52*X .?95OB  l F;%;U*;"\zo56  >>~JRтuR19 |Ot;C:W$Q."KC2!tۮX+.$ "8 Bl:, 4ZEESlXɢ[J0R^|bxyP)x :4I% R,nE`i'-<9gh{iv6GZ . (+: J_WU(|" 4a0t1*? {G~,daT 4  + &uH+OAI\ug@7O Q͟G"k[&V@9W@4, 2 3u|gMn!=+L`؛myD.(30VL_ʅ6 5UPT |66C:))q2Bx9o!>Ah,6+&6zSrF}C:6{~6btZ8YbB:nW{[[X%g{q; lM{P,K  ="-B i01 ّOX $:`K`n&8ay! *i[xw7[*3WFQ%ONgP۔ A:Z 8m,W r0^9G #QMI  `$mT8vbEf)Dh(4 kd{G;*3 8<t K?9q:xZ90 4 P-D<# NQF i,]4E\;h=|oԯ$ @:,m &д`> e*i|&$$T%T,iO^#S|0su5X?9w8"DD=l,p!/,e.8\ؚN2A9H d]zs.@ - qi4G;:&Z3<<% zPP+ RyN?P*02QdKt /=+0 a@DA$E{$0K<NFz\?9,Xwxu]BQ3l37 JG<RxR $/(o"xt 7*"UMrk"ID2{hP)HJK SkC ?-٪E`{vRx (C'qHSo*T3q1 ztl}ijh d76 pt#thmt(b7 *erDQ*AAYu7>I@g :l3 -V*]@Fn ,lUDc Q7"%N`sˀŞP9fٹ)zOP2D9R 0 ] }][df0YQ<* j4v,+ kX ;L+V^ow=(WcԜ PTJ <[J׿rhݎ=+K6y /,PY?9^8 KMQT,E 2w]$$#5'X Hm1P/5# ^)<a_ Ga 488x;lgST|+Il<34$ `Iz n#S^vI< (<xXIXM9 -ih 0;xs$B8pI<K, ,5F@[PId<)  PfW`q0 *>5J F!Bb˓q ]} $ǔ^+Pld"%A,:t S<&bQWlB:0qk{&j.? El;G xlIi )}4WS  ?1.DyDG0 <bft,dH4<t"uݓ*-xثq  2ltHNeZ8So@΁0 $Xxc{*͙hW[4 djkUShqFR0 >+;2Vp)dj/7G; /VH1.ӚY@3md>D)vXv@Kr:UP.GEXH|l^۾|HIt<E4;m%9%;b70K2F0|  g4sRF62 E bC9@9a/V  M-[2#$ZBm{`@7E4U 46 |0W %^x72,LJ<+@96,q,t<'dUC: Y,w)G[NI"{ۢ`&2>H05(~kzTX>|6r9Ua8%rXܰ A:,@yt7=p/ w)Jr07pe4 ] *17 @{ZJ!G;@ġ}8W[Oez-\Rpi<@H* xY<J<56{ @ y|Xu0^`E0VxG<fZ ;~M#:ZS_d.; FRX|ySOPLN`Ǻ_{P8 \SdnRg\UzMdfrՋM0h]  2 4Q"CF Lmc_T9J T[ 6/1_ty?9:zet%ɷ 76d,A\:ymq4E>@`:rB:s1^p'J<]RhyTu|:* :Q&a<^^Pz|{ }0w$FebGs} 1@gmsTxiaYTlx82u 9Hi* 9uHk]B[2sO D$de mLI ߓQE"iPO?m>9d!BS:4A!p2F*9HkQ(F h(=D^$]~GhuUOxVc J9|(+y(:4m&"ͬrWp^h8  b1|,3>7)b2= "ov7H<)D,rmCCw/%Lkxcn*VY]_ :a1?jdSz;tBYgq-+;Sj =8#UԲe.S2) PGfP,E /z( X=,vϔÔ` >R!/1H[89i>3 |v 4M>s3 z  i@VAyTP ͐QCh'b!$@S0]dS'BlX/H$<H E:L[>7=,z e t".xd\8!4u<SA8:!!D;Afi%*Q_PD0L*|77- 6g J(D3|_q.0w@:@ :F7N3Dfx lo7"a!ttw3G.?9M0`1XW) ;!d,Xa"EifD_Л2m7Fp'cph1CTRsd R`K<53xu) }d_ w*b cE$"jI|<H<<&pUp}V0)!f6}^ist&)2q[hM9_47 @]8DWJ -c ڏM4NF<:s:%A]sQTtT#ݲW$QCT'SX4{-ULP6@y 02 I&2!G@ %*6i! V k|*)|nqqg# 1M 2L$m_P|$0XNIXV$a/cJy ^1 h4!k2[{DL-iTwWB|:ی"6!@Y8|1X_~YЙ#;|4h86 8 ypI<Unu #7%:\iV. dHɧd'y+ a=4AAA3qEL;:xc;0 Z`W5 I. 58΍2Htã1$a]:Xz,q8]D;19};xUbq*=ՙ6sp_%kNAK:v}00q`*M;J7; h~*l,-}hۗVg"&68-I; <:P,aX}(Q +A)|R @#.qJ<ū%% %vM_TL:PPyU ($U$Db ?9/*!p"3V! |z:3$'B:fD-V <X m[ %[H;>U(g@H\<izټlATyljX@@?l1R$Ӕ+FD|NUL#}\S&_7 ũg $#\"aU(&aX0e!H9h`}(!-<Q1H^6% F;-HTvl9u:L3g#z(]_$ׯ^6!Lxet=WF;YZ.@   O}|^X HWR p(GfW1c. E<AD:,"01 Zdԝ+  ~D5yz=m0\*?9@P  $5 F! AnMIf0 c"%)]s(`7$Z0l)D<n/F tv!mF;A+m y):@$AJlq<0 33 ()7S9t+7D^t ;!P:Ȍm wdG;9Hx4 L/oPA4P,9~>1*O T|yżi|.V$[oH[`|y<@l8( 4h!B'%A9Y%:K<]jq(M( '}c<\'r}mh\hXx]ɘ0 A&uV!bH45 = tUY|Axs(WiPɎ cX 1 L-M1q0N R G;wsMZ4%G( )i7*PfD%=H4 'QbX` &q@h7: 2cHP-7 hSPP.-T50 X9QMBH=M6VrE @Y(az!Afg6<..uMB4]7)"x9HbT* S cn7O h@`$r$8iu> -8ߋ٠%,ٻ{, NF(`qMyE%E C;$q*їlWlg(]>|+T"`(x P F;!W@̾w N Ǩ 7 ;P P6!"YD,;3Y7uކW(lT0 8nה::(߬j*] ls ssESbp:guqF69 QED;MstPJ(V@6,tϜAJ55>l54Q9H= ߧ"Tlvl@9PK<= pR<P&{z  36OP \<` 95k\qj|&M qx:oFW|yJI (/yi<PpWeI%"BQ:t#sH?TDw'I<2<"p%4H-/$D; m0!C:6.#<  v Qo]L RPve?P4~W9.-xU|llP=ͧBG9# *@1 0U7iJ<@'Uj N"@ z!$r !c ?s^56IymTP|':(@gQ7AX:z  @ Tri\E|$Ù)+D0u $we*Tfu+ !PPyUhV\Q3 =+hf\f@UP7 5? d0s.].7.\1G cU|,1STp@ Ϥm*tE,մk !A8Ӹ &ƥZe Hu[`>W'6 3-T`sn3,wEU3Yl?9t`^=%2Uc:NG; [1yDZ'c.(NRd,}7} mbTl(&{k8pLYyaRUTU$z7Cd,<(; P* , 0yahptܞ!DcH*:,:g  i~=Ub(nd@ i["Q>(I&R39J L>uEw:f Y<x?e ,/U,!i,i2u*{qת<0u$b`Sq&My |- [ %.a6 @5TXpLLL!T q Y8"D:kkP8tg.iXhɞlQFOPU$:uH2A0:m bXqeFCD:=@9D>6|ZdHD<6yFcRd<- &gb " /Bc&\<2>7+:9%T8GR+! 6 _2"YwXc_ 0 1Po  af7uBWo>RyyE^Z 6=(n'&&[ 10մ DUQ \k#|&)FEd;g9 -<@iddSY / y4Zl,xr5o0 QV:% :x9hL><%o$"4oJvf7$XkQ9d ˍTP_BUy 1bUx-9H !B* 16)y M $<0H2022 b1Y4%VH$'C:Ifv_!79^6t8G;lui9i`dd߈iV4ӃR7d-0ED9eٞf q EAxQDG 6S =(@c2_*|%Du@h,@#n$1@<`({4 {6Tk{zV/\iNci\(o7 l I hp?n'~(|AU-9\d4[J2mXEy>Evؒ<Hb^gYK<2XӭQ  }^<r04F?QijpC:vqt^8g< t% FQ(W1%Y\Ю=Z .:VԌx JSVx3yL>20\%?Bt:8mAT6K *])s98W: \E]0ҝ6 YU  6e|kk^AL: Uc:Yx9 XrV"kDq6! (̰k_*`kP" LE&S MF;{ 4w W *3 %^s_0P@:%?1 ;g  X c)>% @\Țrg-|v)T "Q=0l1E<;&=Œ6O_U;x U|r"]Dz(4 >1LlR.5<  L";&CXz(ئBC)"/ c!wAP> [@4;2m) ` s8x%{ x-:$<&B ++0"nx'C:< RXhP#(· nA@:-; 8+)y\(~p:ĸ=)(JM=/o'ymd8F! tv"+D:ћmDv#"D28_"/[}S08]HQ!9P |A=g;8d<%H& 60 : JGH,<Ms'`;<Q 2X/W >-j XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXl: ii :=: ii :3: ii :H: ii :Y: ii :9ii :̰ а ԰ ܰ               $ ( , 0 4 8 < @ D H L P X \ ` d h l p t x |        ı ȱ б        ( 4 @ L X d h x       ̲ в       $ 0 < H L \ h t       ij г ܳ       , 0 @ D T X h l |        ̴ д         0 4 D H X \ l p         е Ե    ( H h   ȶ   ( H h   ȷ   ( H h   ȸ   ( H h   ȹ   ( H h   Ⱥ   ( H h       ܻ  , T |  ̼   D l     4 \   Ծ  $ L t  Ŀ   < d     , T |     D l     4 \     $ L t     < d     , T |     D l     4 \     $ L t     < d                  ( 4 @ L X d p |                                      $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 8 < @ D H L P T X \ ` d h l p t x |                                          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                      $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                                      $ ( 0 4 8 < @ D H L P T X \ ` d h l p t x |                                      $ ( , 0 4 8 < @ D H L P T \ ` d h l p t x |                                      |     $,0 $,4<@DHLTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx| (08@HPX`hp } ~   , T b   X -  k   C `     $ ^( }, 0 4 8 < @ D H L P T X \ ` d Kh Ml ap st |x |     [ ^ d         $ D ] c p        > F ] h j         n q  $ ( , 0 4  8 < @ D +H 0L >P UT X \ ` d  h .l 9p Et Qx Y| ~      5 h w {       B d j m q u        . 5 D Q a  k  w } @-W-dE ƏʌdƏʌ\xGFƏʌPƏʌHƏʌ@xGFƏʌ4xGFƏʌ(Əʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌxGFƏʌƏʌƏʌƏʌƏʌxGFƏʌƏʌxGFƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\xGFƏʌPƏʌHƏʌ@Əʌ8Əʌ0Əʌ(Əʌ ƏʌƏʌƏʌxGFƏʌƏʌƏʌƏʌxGFƏʌƏʌƏʌƏʌƏʌƏʌxGFƏʌƏʌƏʌxGFƏʌƏʌƏʌxƏʌpxGFƏʌdƏʌ\ƏʌTƏʌLƏʌDxGFƏʌ8Əʌ0Əʌ(Əʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌxGFƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ xGFƏʌxGFƏʌƏʌƏʌƏʌxGFƏʌxGFƏʌxGFƏʌƏʌƏʌƏʌxGFƏʌxGFƏʌƏʌxGFƏʌtƏʌlxGFƏʌ`ƏʌXƏʌPƏʌHƏʌ@Əʌ8Əʌ0Əʌ(xGFƏʌƏʌƏʌ ƏʌƏʌƏʌ-Oh&ThThD Fh FF;CYFBihfhB)hV0F6+Fpf"ah8F:(ѣhbhB#`#c`CZBihhB)h^0F6+Fpf"h8F:#` FF FFc 9FhFnFc0FcF( Fc((F!Fc -AFO(Fc80FcF )F0Fc{0FczF(O'cBh(FS'c`7""#++!F(FcV F*0hB@hpGhpGFFF$B$+h\ RpQ R@* ݼ3##"*ֿ# FCC""!0hS 45, #0BhBhQ# CA# 3$%#BhBhR#dEB#@3E1KU0K 0-OFj FFoRMIF FyDx( FS! FS(AF FS(|)F FS(v)F FS(p;KjD{D-UQF Fx(_ FS!F FS(U[F2F!FHFG(M FSo@C"AFD # FRsk[h+% Fx FSr!F FSdHl FS^ FSco@C"AFD # FR-h FSQo@C*FD # FR r  ' sFIFyDx} * FS+!F FS(! FS(3h Fhm1!S ( FSo@C"[)FD # FRg p8 -OFkFH(FjyDibu0FbF(F hcF(+iC` F{yF( 0h-hh[m+K"k{DjibTFF hcF(ہ;iC` F{MF(ҁF! hcF(Ɂ9FcAF F{9F(F! hc-F(#+Fih iB3)F8Fcz9F F{F(")F hc F()Fcf9F F{F(BF! hcF(+# ih iB3)F8FcE9F F{F(h")F hcF(_)Fc19F F{FTFFOZFCF! hcgF(E)FcRFCF! hcXF(6)Fc{x9FHFC{p0C0#hbhc( #hQFbhHFc(9F F{F(QF F{F( :F9F(Fb(RFQF(Fb(0u+LAF F{IF("1F hclF(1Fcshhk`+׀)F F{JF(πF! hcF(ƀ)Fc1F F{6F(F! hc*F()Fc"ihjdOp`(@FG! F{F("1F hcF(1Fceshhk`+)F F{F(F! hcmF(y)FcL1F F{F(oF! hcF(g)Fc:"ihjdp`(\ c1Fb F{F(Q*F! hcF(I)Fc"ihjd(= cAF, F{F3F"9F hcFP9Fc1F F{F+F"QF hcFȱ9Fc)F F{F"1F hcFH1Fc)F FO{w # b h0+ L|D40#$C9Bh4@`IhO3`0 -OFhFFFiBh( ((4$O(N$O;"F F ^?ӱh9)X()6` jD (,h4E(z(;й,0C +31 0hB,#asi,0X#0HFFh)F0F;C`hC"pF3Z(`hC"a -CFiFT+h O>O?h kh)F"6F( FOF()F" F(F( FAF("AF2F hc,F(9Fc1F F-F(йLйO)F FхF8F( FF()F" FF( FF("AFJF hcF(9Fc)F F(#2FAFF hcF(9Fc)F FCڻ-AFhFb]h-_+&+khi+؃hjmGzzG :+5'BF;F5! hcF(:1FcNAF FF+F" hbFP1Fc>)F FF;F4! hc{Fȱ1Fc-)F FAzhjmGz3FAF F*A -CFhFh ^%:F+F!hcJF(9Fc+FBF! hc=F(1Fc)F F>F(ckk+8! F%F(! FF(9FKF" hb~F(1Fc9F FF(+F%! hbF(1Fc)F FCFhFh$!#FhbF9Fc#F2F!(hbFH1Fc!F(F@ֺ sFh FhJ#7!hbF)Fcn1F FF! FF3F" hbFH)FcV1F Fp@ psFh Fhz !hcFH)Fc=1F FF#:! hbzF)Fc,1F F|Fx ! hcFH)Fc1F Fp@j p-O& FF3F FO8hO bGF()Fb9F FGF(쁻.3F8! hb.F(ށ)Fb9F F.F(ӁFRF?! hbF(ȁ)Fb9F FF(KF5! FF(! FF(RF?! hbF()Fb1F FF(! FF(RF>! hbF({)Fb{1F FF(pN ~D6ήBF&3Fz! hbF(X)FbXAF FF(M9F" hbF(D)FbD9F FF(9FF" hbF(/)Fb/AF F($! F3 dF(;F" hbF( )Fb AF F\F(F" hbF()FbAF FFF(.9F" hbF(߀)Fb9F F/F'6.SF"IF hb~F(Ā)Fb1F FF(!^ FF(CF" hb`F()Fb9F FF(2F%! hbhF()Fb1F FF(G!C FF(x" hb*F(p)Fbq9F FF(f!7 FF(]3F" hbF(U)FbVAF FF(K:F%! hbF(B)FbC1F FFȳ! FF" hbFP)Fb+9F F{F2F ! hbFб)FbAF FkF:F%! hbFH)Fb 1F FOW ?I@ 8 F+h %%B 1"F80 8 8F8 870 0 R/, KHJ{DxD3zD+KXGpGjU hU + I H KyDxD {DqIJXGpG:U 8U + 4 K J{DxzDk KX#K{Dh:K"{DpU + 0 T HKxDh{D@JX+ИG& B+ _/R_/_A/R_/_/_//R_//p@-P@Pp4R003/Pp0p@4/Hp@-P`@Pp\R80 03/8PUp0p@4/p@-P`@Pp\ |R80 03/8PUp0p@4/pp@-M`Pw@P P0[R P0 P5/PЍp04Ѝp@/A-MP`pW@P t@;R80 p`P5/8PUЍ04ЍA/lA-MpP`.@P pPR8b0 `P5/8PXUЍ04ЍA/ȧp@-P @PpX`Q8>003/8P7Up0p@4/8@--@`Aa@P 8hQi~Ih H 0@0/谦@--@@P ,xQH ~0@ 0/Tp@-P@Pp Q0~p@$0/A-M`pP@P 0QP0 (@4/Ѝ踥O-$MPH0L`0@P rQ8 0  p @`,P5/8PU$Ѝ04$ЍO/HO-$MPP`H0L 0 \@P @Q8 0 `  ` @p`0P5/8PU$Ѝ04$ЍO/ဤO-$MPH0L`0*@P Q8^ 0  p @`4P5/8PPU$Ѝ04$ЍO/ḣO-$MPH0L`0@P P8. 0  p @`8P5/8P U$Ѝ04$ЍO/p@-P@Pp@P0 <03/Pp0p@4/Xp@-M`P@P tP80-P@P5/8PUЍp04Ѝp@/p@-P`@Pp\vP80 D03/8PUp0p@4/Xp@-Ps@Pp8RWP0H03/Pp0p@4/ܠp@-P]@Pp VAP0p@L0/ᄠ@--@`K@P 0Z/Ph H 0@P0/<p@-P7@Pp<^P0 T03/Pp0p@4/A-P`p@PhbP8R0 XP5/P8A'043/8A'ꈟA-M`pP@P lfO8,P0 \P5/P8ЍA'043/Ѝp@-P@Pp<jO0 `03/Pp0p@4/d@-@P4nO0d03/P0@4/ @-@P4rO0h03/P0@4/Ἕp@-P@Pp<zO0 l03/Pp0p@4/hp@-MP`}@P xaO8 0pP5/8PUЍp04Ѝp@/p@-MP`U@P x9O8 0tP5/8P}UЍp04Ѝp@/dp@-P`.@Pp`O8b 0xP5/8PYUp0p@4/ț@- M`pP @P p!N8?0 P|P5/8P5U Ѝ04 Ѝ@/<@-@PN0@0/ᰚp@-P`@Pp`N8  0P5/8PUp0p@4/pp@-P`@Pp`N8 0P5/8PUp0p@4/0@- MP@P PzN0 03/P Ѝ0043/h@- MP`pw@P t[N80 P5/8PU Ѝ04 Ѝ@/@- MP`pO@P t 3N80 P5/8PxU Ѝ04 Ѝ@/Lp@-P`)@Pp< N0 03/Pp0p@4/ᴗp@-P@PP D*M8E(003/8P=pT0@- MP@P H+M0 03/P Ѝ0043/p@-P@P L M8(003/8Ppp耖@--@@P D-M0H 03/P0@4/p@-P`@Pp@.M 0P5/Pp0p@4/ᨕ@--@`@P H/pM0h H 03/P0@4/@O-M8`Pl@P tPM8 0  P5/8PUЍ04ЍO/p@-P-@E@P 01)MH 0p@0/p$A-M`pP-@P PMP0 P5/PЍ04ЍA/ē@- M`pP@P PLP0 P5/P Ѝ04 Ѝ@/Hp@-P@Pp<L0 03/Pp0p@4/ؒ@- M`pP@P PLP0 P5/P Ѝ04 Ѝ@/pO-,MPX`P0T  0$ @P L8 0 `  $` @p`P5/8PU,Ѝ04,ЍO/ؑp@-MP` @P tgL800 0P5/8PUЍp043/Ѝp@- MP`p[@P t?L80 P5/8PU Ѝ04 Ѝ@/|p@-MP` 3@P t:L8g00 0P5/8P\UЍp043/Ѝp܏@- MP`p @P t;K8?0 P5/8P4U Ѝ04 Ѝ@/<O-,MPX`P0T  0$ @P K8 0 `  $` @p`P5/8PU,Ѝ04,ЍO/ဎA-M`pP@P PKP0 P5/PЍ04ЍA/p@-P`@Pp\sK80 13/8PUp0p@4/Lp@-0MP`0l@P xOK8 0Q5/8PUЍp043/0@- MPE@P lA'K8w0 13/8PoU Ѝ0043/ A-P`p@P`CK8S0 Q5/8PJU0A4/ጋC-MP`0p@P J8- 0 p `P`Q5/8P UЍ04ЍC/G-MP`p8<@P |GJ8( 0 dQ5/8PUЍ04ЍG/@p@-P`@Pp`IJ80 13/8PUp0p@4/᠉p@-P@Pp8hJ0l13/Pp0p@4/ p@-P`m@Pp@MPJ0 p13/Pp0p@4/Ĉp@-P`T@Pp@O8J 0tQ5/Pp0p@4/`p@-P<@Pp$J0p@x1/G-MP0`4p%@P TR Jp 0` Q5/PЍ04ЍG/ᤇG-MP0`4p@P TIp 0` Q5/PЍ04ЍG/p@-P`@Pp@UI0 13/Pp0p@4/᠆A- M`pP@P xWI<D0 8@  Q5/P Ѝ043/,A-M`pP@P PYIP0 Q5/PЍ04ЍA/ᄅ@-@P8ZeI013/P0@4/A-M`pPh@P PLIP0 Q5/PЍ04ЍA/ᰄC- MpP(`G@P X]*I` 0P Q5/P Ѝ04 ЍC/,A-P`p'@P@_ I0 Q5/P0A4/ᬃA-M`pP @P THP0 Q5/PЍ04ЍA/<p@-P`@Pp@bH 0Q5/Pp0p@4/Ăp@-P`@PpDcH 0Q5/Pp0p@4/`@- M`pP@P xH80 PhQ5/8PU Ѝ04 Ѝ@/p@-@P DfwH80|13/8Ppp\O-$MPH0L`0r@P VH8 0  p @`Q5/8PU$Ѝ04$ЍO/؀-GFF)BmRO CFO:w +O( #_CVE#\sKDn`(0+@!qIDoh+@ hR F C!jm`j_DS𙀰_@𠀡Q)hApA`mDSiAa#jmS+DQh#c`mDSh!?!qDtC`m|DPj#CCA1bmDPh#C`mDSh!@A`mDSj!@AAqbmDRPj@@Ub6_hQh<h S( DG-]=e#RhXBnpEbh!pAAAh!pA`mDSi!ccl+?oh(?kChHsEsFCSCCC#CC[3@#N(.  @>.N@@3#C @DQh#cC``&mDRQj!AAaQbmDSj @ bWmDRjAAbmDSj ` @0b?mDRj A1bmDSk ?@U mSk?@cmSXk|@C]cmDRQk!|AAaQcmDSk @cmDRkAQcmDSk P ?@0cmDSk A1cmDSh @E`mDRxA!`mDSXh @e]`mHSZh@@X`<-GF4FF 0cFF(#\ .3FO:r( #0k@FVe(@FO0\@F5ƹmBB+F2FQFm8i@ F1F# #fcf>mBX#BU# *Rh*3+F2FQFmRh**hBjBP+hmkBPB*hmjZP+hm@PmSXB[ SP-C$F@&FW4, %Y%0K#*F!F@FI5 --OFFFmF hSFF8FmSh+$@,+mBX @ BX @ BX # +8F#0mBBXX@cO3 B$ B F$ F)$;F2FAFm@-O FFFFm9FFmFpH0mBX+٣8*J(@8*!F2FPF#F(@9F(F#+fkfx"0F2F O O IFPF#(i\BZ0+a]PFF0F#Fs  ph<(0F#*0F#0F#++XFmO02PF\eAF[l(FS'0"h:Fh*F_LS/:C!)ѿ_B#:2FIF# FF#0jDj_m BeB DB Y"pBBB_ѢR* DB YBpBQBm DYB DB Y"pBQBm DY"QjS+mB DX#cP0Cl+=h*:hShJB#FCSCCC#CC[3#D@$* "" B4$D B L@ B3#C BmB D X#cCb P0< FFA BABAHB HCBfJ/!zDp@PH4BH3B$ACBACBACHc3BHCBVKVJ{DzDABSKTJ{DzDO`BPJ0!zD9:AB9 ABGABc+A BPF0F" _LS/:C!)2#"F;F XF(P_LS/:C!)#"FXFHdS (44 C; +""" &@'&O@w&Og&OwKJ {DzD(FfO`&0'& 'KFBFSC %!F ;FaB q B1F  0F *R"1DOZ O ;F *<$B !zJ(F3FzD),tJ#F!zD(F~cB +pJ #!zD_lJOSzD_ hJOSzD!(F]@P@󜀹@#&x0##|0cB #+[#+[#6 Bp#2FXF (c"F!"_LS/:C!)ѿ_*Q!N%BF F KFF F"_LS/:C!)ѿ_b!)'2FXF (_LS/C!)2FXF 6B (F`@P&dB'r\Vt0sslr tttA RsrIsWsqq-OF {F FF\`*BHeSEzKQFzJ{DzDAQFQ0wJ! FzDp* /sJ #! FzDe HdSE"+qlJzD! FW@PD0@ F5eJ;F! FzDD@PHdSE^KYF^J{DzD FO`S'0+\0+ F@P .PFFF8LJ;F4!zD F #  ZF;FAF F!(JFPFHdS+FUFPF-п7JKFzD-5J+FzD.3J3FzD!|ZrEF.JzDAh B+JzD!irE(J+FzDЋB%J3FzD "JzD JKFzD!##SC[B?F!J F+FzD7 mnqqm_n   l5mLmbm}ppp"qwqqdn-GFCl h+h3B-D$X/;h+"m(;hhBZhBњhEhE4, -C%jFFFEfSh+<#fZCl+bh+_FmعY*$Cl+Th+QmB\벳B clh+FchH/BAѢhB>#="Fm5(2* g*)Уo+o%B*! FrOO@ %Y?h"mP;F2F)F F]5EE##g-C#FFF@PMj(Fj FF@P90FU/lCd=FBF FlF(_L3S/2C!)+F_2F!F8F/g+ є(8+F2F9F F+(F-G FF(!FFhG+{Fjh&JD!zDj/hC|JE!zD(F.@P@RE!uJF!zDj5rJG!zDj FF(sHeSE@𙀳i2jz!bjCB CB "O2"F`i2jr!ZjCBCO3##a3j1 [h#ca3j!# hFaahkn ;1*"ba" alHePBdlCd lCdZF#" F((F8@PQ_L3S/2C!)ѿ__L3S/2C!)ѿ_ _L3S/2C!)" @FV-lCd#FRF FF(_L3S/2C!)ѿ_#BF!F(F g nnn o9-G)FFF YK{DAO@FF . ,8,Xhi!F (Eh- @SEи^oF٨C;+@ಲm(Ѓl \lTT&@/$J;F!zD. !J3F!zD(F .@P+SE(F J3F!(FzD hCFHFRhC((F @P` F_VxzoVVUVVF# FFF3`{C;+JKJJ{DzDHBGKHJ{DzD bO`!F`*{* >JzDhzDFMP 8l(ؿ%%h@VQ#E`h=l3l5#SC33dh#` l8l@#(Կ  F(@h@WQE@`Xkm/FN`P0N` J8l(ؿ&&{i_@WQ##^@{mFF&FFf~amxe &8l(ؿ&Fi@WQ#^@a\]^ph\]^p 8l('FFsi@WQ#8"r#`cG#sakn_``x0{f_`` 8l(ؿ&&i_@WQ##^@{nFF&FFfanxf 8l(ؿ&Fi6@WQ#C^@almphnPlmpnP 8l(% F/Fi#8"r#`cE#a8FFHIp)JҲK`ГG0CBCA#*HIpO '++lJO K`&R[ F\&O G \7FFF@UQ -ййO O ///' '〸‸ۀ &O h#b"p!AB"xB""pBS`HX 8F.Fl@*Կ  3jH#C# C@#@C0bx.l;l@6#SCF3;d 8l@Z(ܷ#&:l*|ѷ#FCzzȿCȿC:j"pB3;bh(l3l #cC#3d3j#s3bH m8l@#(Կ  F3j 0b(lX +l#cC#+d+j#+bH G8l@#(Կ  F+j(b F<F@SaO O &# zzȿ#ؿ#ws8i6(F CpG8F F:{+ JzD+ JzD!F(F +JzDJ!F(FzD,D#<8JJ JJ(Ha#B8#8j#FpGF(|8k 0 Fy8i#" FF 8[i+" F Qch+ 8i*# Fah#8 F V& 'U/`B" FF k 3#8ch+Fm #8 %#9 FA]P F@߿-GF-F@ FFnF(-E`PHa"8OHR#F`8 !Xx F(퀜")F^3l! FO CC3d$3lO~Rh C 3d8gl"RdjBpBb8hMB`8lBRdh"`b@Ȋ F x:BC;a(hCpC`"Fx# " FH I0J K0G Fh!K@"ClCS`8 !`]`CiN CAeeCCaCi\P]P#c^P#Caie#ai_ CAffCailPmP#cnP#aPF8fi!AaOQ8D j"EPBbahC@c`hC0`\F8!h(FjF FN0Fs5G-! h dF(]`h(F!6F(QHFFF(IF! "F(= F C VL8 3##s} ah88 `h F@F% FXAFxFH#!hF %VF F(F|h FG?$E$:7F@hM}D(KXFh#c`(KXF i#`(KXF`i##a(KXFi%ea)Fia6] F0@ڽx ld8F$ F$"!C``?`p; aP7`a03a"T?D!)-_ SC ("SC (ѿ_6a F8 Fu 8) _S/2C!)ѿ__P?3@2*ѿ_pG)F _S/:C!)ѿ_ ._T?;D2*ѿ_ F@3-CFFF%BBF!FV5 5 -C@0P04B`FFF)d[!*".&+#KEĿ$#FFEĿ%.FaEĿ$!FrEȿ$ȿ"FHEȿ @Eȿ`Eȿ pEȿN}aC+) rF7?+3O" WCbJ*2bD2^" s# D;F*/BF' |6@B%BFIF#3 +F00*h0F+M # ! "ji* Ъ+F BF+Fb0F*:ji0Fi+:"!Fki+HF=_ LS/:C!)ѿ_PFl'(@W s F;XF @P F 8F bz +UxB;-OF{F < $ +@zOFDlG00 , R# JE3+""#^#AE3+!!AEACAEHc3CBCA#*[KIF[J{DzDQYKAFYJ{DzD(F `O`UJ)!zD&,SJ#FzD. QJ3FzD(F*! @PLJ+!zD ,pІ8%( EJ-!zD(F @Pm0FkೲJFAFXFsIF@F9Fp8U8GC'w@p&3H+ н@pCF(F @P4&H+#(F F0@ 9FPFrCL8F F # (FJ:CL5^>2>H>Q>J>-OF8FFFt+5г9FQ&H CE&JHC! FzD CF ZFQF F+FJ!zD @P ==#BP#@B3  DB;B pG pGS +  @_   pG pG pG pG0(@P pGK(0{D$к@BOD$M F""[YO 2[\DOB@ HRBT@ADSC  0\ @* pGP!P!0: pGP!0: pG pG8F8i5 88+8[k %'t#{+( F(F F 8i5(F8pF8i58@ %0) F'W F'CFp0F2{*(OF0F { F$H79M7O18I0Fy8i5(FpEK-GFFF{D  $FS|RF!F0F'cz 84,ij-j,zFzz:1*- zjFzz:j* zjFzz: jzFzz:ED7#9F0F$F/ @UQ ,Os(F"F9F0F$|BC4;-OF (@؁+{c3CJ(F!zD @P 8(F`1F=(0C0+i833k#jJCB3jKC##0+#FnC? CGK{D#qFF/ P#FK  R# 3C+ F+'3o  "QF 0FF' o  KGo;G0 FsЕ7+##HCc/@WQ Y#'@;@B3o SF ( ZFQF0F 'H  o  ) G O ( ZFQF0F'- 00+j,+  0+G ) 0 +) GI ,@ ??+@"F$1F(FM$"1F(FD$"1F(F;$"1F(F2sPzzD!0Fgzz*$a  !0F$y藂F@WQD  "* @ J : ! 0F$>AF(Fpo"9FC(Ftg8 8 ((F @@PN(Fn#f#g} #,O   J  LJ ,so?Csg"9F(F((FF(F/,Dn# f>sH K:f9F #`C`F FF$BW$0F4-GF{ FFF*FJ(!zD KJb!zD @P$DE"(FFhF@FIF(FpPF2F!F(F8F @PF$4 66)i@h0 -CFFF"!hFF OGnF(F!O  1pD)# "BV"00P+DF"02BV# "A( 3-A$"F%F&FO 0EDEBD$.@@@SC"*C -C"FFFFO  F MD  LD6.'%"$ED pJp-C%,F.F*F/FO 0  JDDND5)LD7/$%"&D3CCF -C$%F&F"F'FO 0  JDD LD&MD7/%&"$E#CCD F;ŸF;F;C-O0FFF(!"(FDDc8F!#@B  O0O#[#0[z:wzzE1)D#'G *O[C)OO CO*FXpO O  pD S#zzzS+ Уp( CC&07B 9(C#CQ3Os4җ @-OFFFFe"F9FXFh8Nh\~DFj%HO #j< ;+7"1+%$KK$X"$K$k̹K$KK$O XK$O X K$O X$KK$XFO*[#,YF;(@_,XFۊ [Q)8!+8#   F2'0Fd1!v0F['_LS/:C!)ѿ_ w F ; [", ۊ+#   # +#;%,+#+#4()*+# # Bm% B + ## ### #& F[!;#;$E ?!s@6DR8 #E :  : |* $EڦU6U6U6U6۲aD JFpDGU3U3 3 3DDSDBZ53D"D +,+ D 3B ,V1@'#XFQh'_LS/:C!)?+ +3@Px@P7x lH4-OFFF]FFFmj+#F2FIF8F1F"F8FhH3BACBACB#H4BHc3B$$S;+[JzDDA$ AEA E $$$$ 8  #RFk9FHF(@QF8Fۊ S*F+8# [+8#W XF !XF _LS/:C!)ѿ_ HF *O  Z XFV @ HF _LS/:C!)ѿ_j #*FCFQF8F;` _LS/:C!)++5f@Pb.-OFFF FFF2F9F(FZFFQFm#{+nHJ$!zDl EJ%!zD F @S{*Š*uj *ri;+;J&!zD.IщG0BF)F F 0   #3F!HFsHF2F#AF(F(ZFQFm_LS/:C!)ѿ_ @S F HÊSCo iZ+3F:F!F(F j:F!F(F+3F]ZFF ----AF FChHeRBKK!FKJ{DzD@RBHRB+ EK!FEJ0F{DzD O`xHS hB HeSB@SBO3### 3hm+0F @PV@SB !F(F(I#"F1F(F=HSB>&LoFF|Dtǔ$(F(@0F JFB!0FzD @PX$p(F9Fx(4, #:F1F(F(#f F-FAbF*w,,,]K*v]K*z]KpG,,]K*]K*]KpG-OFFFF$LE4"!hFnF#FEOE!:D]!XDM!1)  CD#V# JCT3+5D-O - F:O 4$/ 0  Opz2jz zzzxȊ* O@@xF9H9k*(߀O@8FCIO @2F2# E + ##DS##DS\ S<,;F ;E (FD2F 25hO E]"! h)jFjjj ZiZ#\*,h$*PF\RF F!F"FGz|zFz GzFzGzEz*GzIzEzznzz*T3:h  5{ʚ8IFB8FB#s pB+FB(FXBXA -OF8 FFFCh@+ 84of<4+ F("IF F(VD2+h)ABBABB """P jC[hBظ8JF F3F?,.и')F:F@FA* H0*Fr 8RF)F@F;FB VUUU8 F8FCh+84k<4S F()F F"8@.o8-O,M' O p (F FFF1F(FF( (tch+8[h %l F6(f2F)F'F(R FF(LP4RF1F F+F F(5ch)F F+FH8h P 0)F F$@cF( oHBhh2B`h2D`:h D`2F)F FXFF F F(F ,M-AF{FFFch+ *(Y8[h %T)F0F3F( F(G:F1FF FF1F F F(ch1F F+;>Fȹ;FBF1F F@9F800o(i3aCi;DCa:F1F FN-(FBF F nF(F+ z*zGzz * O3#@!0@! BT]+  *zz@! 2"BT]+  *gzz@! 2"BT](J*H ? pG  zzؿGz0' :  ` H` `  P! {:@!0pG@ ##CTpGA-CFFF$%) JF@F5-4,ѽ F FFF *i ѱ _HaqEWKXJ{DzDHaBHbBx$R0 PKPJ{DzDHQB%HQB_B!B= @QBpд_wx$RRkIHrQBAHsQB[HqQBfx$Rk8HQBHQB<ҤA9)T!DDv<:A9)H!DD<.x$+D#,D%F)F 0F5-*x$Rk!0F!!DDr<!DD|<hbhx$Rox$Tbo!0F K J{DzD!F8F O`%7%/& %F{FF\@_ KJ{DzD O`$@Q*R8F2 !F4, $ %p F{FFp$F;#J !zD @PpHB HBHBHB"HIBHBH`B Rk m $ 1"i o` pK FJ{DzD FO`p$#pF{FFKC+(K1F(J{DzD8A#B' ش_A#B&8C(3_AcB8%CX38C3 8CH38C83% K!FJ(F{DzD O`pF&1F 6B p"$) UK#F{FFFG3/VKVJ{DzDR8 *);k}MWa`"$3Gl7!F2F (F4,r`"$3G|7!F2F (F4,``"$3G 7!F2F (F4,N`"$3G7!F2F (F4x,<D`#42FC& .@`#02F' $A`#12F( `"$3G87!F2F (F4H, B`#2#2F, !(F8 2FC KqFJ F{DzD !O`s##!H07BFFH17BJѤ A9) !`" !`"KJ{DzD, @8(#!@$ щ !`"`Z` `+ "`Z` !`+ `X` K J{DzD!F(FKJ{DzDO`!Y"!!!-"*-AFFF #@J~!zD@PtH%cBGH#cB7;H"cB\$#3F"FHjB=HBDH&cBJg!(F2F q2F(F! j2F(F! c2F!(F \$#\C3F Y$#3Fbh$#(F3F!h,$#3Fb!(F $#3Fbi!(FKpFJ9F{DzD$O`!7F{͹* #J~!zDu@PHEeB K!F J{DzDO`3$  i`F0  a FF;b!JzDJ@PHD"BHE"B,(((` KJ{DzDO` -CFH8BF FF€@2B7J@r2B"@E2B @!3B@D3B@+F$M7o\l@F3B@t+F$@3B@t3B܁@3B@^+F(S@3(B@]@#BB?@2B@2B7=o@3B@4(+Fm@BB@"CBxAo@!#+F!0F+F#!0F+F#!0F+F#@WRB@RRB@RB@3SBԁ@CB@+F#(_H7B@(lHBB^HB{/HBHBHBHBHiB@jx"+F4 HB߀HB@(l@2oHm"BHV"BkHl#BHC#B@qHmCB7HnCB2H#B@|+FOrqHBBK'HRBeHRBHSBAHCB@]:HB5HCB.HB@N+F&CI5BHgRBxIBHWSB@6IDB#IEBICB@&+FOb@"+c %*F!0FDH#*F 8l+F@0$!0F+F4$!0F+F8$!0F+F<$v $H*F68*F# !8*F$ (l"8l+F8*F jx!kjx!kjB2`-x*F" -x%$!F*F 0F4,x$!F+F/0F4E,'W8M(lL8l+F2p!oi\+FF8N78^+F #P (!0FHD *F!0FZ *F!0FS4!F+FF0+F"-(+F!0F (!(+F(+FOR+F@(T(PhB+F D("+F@"&!0F@DǾDB򷁴O$@3BҀ@T3BB`@3B*@3Bش0o@3BA-%'𙽴1o@3BAh*F !0F𗸴5oش2o@"3BA~ *F0F!*F} !0Fy@R3B@S3BAd-D%\4'@e3Bу1@b3B@W3B𚅴6oAG8!0Fi+FB"D@c3B@d3BA/@*F !0FN/@3B@f3Bj9oA8!0Fl+F@3B'@3B-:o@ER+FX!0F@QCBs@3B΃0@3B@3B@3B@ՇES*FX1F\0FԿ@3B݂o@8I2+FF!0F@3BքEo𲃴?o@8LQ+FF!0FBt@8SBÃ*@1SB@RCB@TCB@a+F$(!0Fgc@2SB@6SB@N+F "!0F9QUo~@9SB@:SB@7+F0FOR!!+FOR!0F2@SB𢄴^o@@S+@NHcBۀHBɁdHzB0HuBH:B%HtB@+F !0FHvBHxB@ᆘ'!0F$"+F޾H~BzH{BkH|B@Æ+F !0FžHBjzHB@+F( !0FH&BW3HBxHBdHB@'$#!0F2+FhHBXHB@w8!0Fl+F"zvH)B3H'B"H(B@[h*F !0Fz[HCBHcBǂHCB@A'+F!0FB2(@HB.aHCB*HcBӂHcBHcB@+F !0FHcBHBB@+F "!0F HHBHFBHGB@+F !0FHB̀HBЀHB@օ+F !0FؽHBׂ/HBHBsHB@+Fx !0FHBHB@ES"X1F\H3B<H3BH3B@+FA!0FH3BIHeSBH3B@o+F !0FYq+F !0FPh+F !0Fc_+F0 !0FZV+FH !0F5M+FL !0F,D+FT !0F?;'$#!0F2ZC+F\ -'$#!0F2+FRh+F8 !0F+F\ !0F '$#!0F2+FRiES*FX1F\d @1FR 2h*FDP0OݼER+FX!0FӼER+FX!0Fɼ 0!S 3+Fh0F-D%t4'9F*F 0F7/@*F !0F@*F !0FEr+FX!0F8AR!0F[jo+FORzvEr+F\!0F.l9F*F 0F7/`8!0Fi+F"TH*F !0FhIh*F !0F]>$H$!F*F 0F4P,/8!0Fl+F@'#8D+FF!0F@WQ~8"@0Fm:+F @!8-*F"!0F" 8Hv+FF!0F+F,(!0F+F0(!0F+F((!0F+F"!0F+F"!0F+F"!0F+F "!0F+F "!0F *F0F!*F IF0F+F"!0F}$W$ !F+F0F4 ,щ+F "!0Fj+FHc2!0F~z+F"!0F[s+F !0FSk+F !0FKc+F !0FC[+F !0F;S+F !0F3KEpb+FX!0F*B+Fp !0F":+F !0F2-F%'9F*F 0F7C/" '29F *F0F72/9F*F 0F7'/ES"X1F\0m @1FR 2h"DP0YER+F\!0FER+F\!0F@_@҂8!0Fi+F28!0Fl+F}8!0Fi+Fr T<+F!0F@b8!0Fl+F@"W8!0Fl+F"L 0x"!0F+F$ ?} 0x"!0F+F% 2p+F@ !0F*h+Fd !0F"`+F !0FXH=(BHBȁiشUo@3B@:SB9o@,8!0Fl+F+H B,HB@8-%0F*F! 28*F0F! )8*F0F! 8*F!0F! HBdHB@8Hq+FF!0FBHsB瀴O(HcBHB@8JO+FF!0FHcBπHsB@+F"!0FHB퀴O@܀HBHB@8n+FF!0FHCBKH3B("HrBO HiB@m+F"!0FXpHL3BDHM3B@\+F"!0FG_H3Bw H3B@K+FRh!0F6NH3BnHCB@;(+F!0Fn$ٱ6o@3B@W3B@р8i(CB3١C+€kiQ9@HbBDHvB_,HtB]HuB@𤀓@0#p1olб2o@8l#@_M@3Bx@SB@+jx"U$0HBQHBSHxBsѕ'$!23!HaB\ H@BZHDB_ѓ0H2BIHeSB6HbBPѕ@0d0ESES\I8i38iC#Es8l@#8l@8l#{+jx"U%0t8lW8l0i3f8i`0]#J#p(FKzD{DO`8 8FHSFBFF HeSB@SB@KAJ{DzD"HB70+j;K;J{DzD9FpFsO`"" 0!#jBB3FhBB"j3F!(F= 3Fbh _3Fbj#K#J{DzDH3B!0+KJ{DzD3F"k(F!3Fbk(F!3Fk(F!3Fk!(FHhSBHeSE3F bi"3F( !(F{]SۇpFFHBFFHBp$D"&KJ{DzD3BJ(F]!zDA@PpHeqBHdqB HB HB [RhChHi"` p`pK!FJ(F{DzDO`pL!pFCh+#K{D53 K{D,=3Av B` ر_AsB`pAuB H3B K{Dwc`p`pch+ K{D``X# F` K J{DzDSO`p pF./BhOS 8*$8(8,80848pGpF{ FF[6H!xD(4K1F4J{DzDY@RCB#صEo*@QCB1GHBH3B3@TCB; h5ch+#K#J{DzD3$h*ch+K J{DzD((hch+KJ{DzD,hch+KJ{DzD0h ch+KJ{DzD4h pKJ{DzD)F FO`p,]~Gh1R<&0jDj_m BeB DB Y"pBBB_ѢR* DB YBpBQBm DYBQ DB Y"pBQBm DY"QjS+mB DX#cP0Cl+=h*:hShJB#FCSCCC#CC[3#D@$* "" B4$D B L@ B3#C BmB D X#cCb P0g;mB[=e F!j _#{FH!xDT0PK FJ)F{DzD5O`J#mB4e F!jg 8#{FyH!xDd0PvK FvJ)F{DzDO`#F#>gnB f F!j? #{FhH!xDt0PeK FeJ)F{DzDO`#{oB}g F!j BF!HF#{zg zg zg @P zzؿGzzx&0' GHpS zlB @8BF!HF#{zg zg zg  zzؿGzzx&0' GHpS zlB! g F!j mK FJ1F{DzDMO`b wH/hb\Ib |#{۹HbB K FJ1F{DzD O`!( KFJ F{DzDO`x&D@084B%r K F JQF{DzDO`7+E{fpF{FnB&B K!F J{DzDO`p3(F"Fp@bFp-OFChFF'O &+O33b$ FO ih^?) @?3 _S1CE_jh*/#Ap@0OScdHxQddHvSecfO@sff@3 eaee(F!f9F#gcggg `````7x4/ѽ-GFHS-BFFF HeSB@SBO3### Z 40F$IF{DzDO`J2j!3jm+0F@P; @FBFB BBۀ _BB HB]H3B#jB*F4!xD0`(40F$$)F{DzDO`HeSEѥS+ 40F$)F{DzDO`_%bBsBе_##mBBPUY=-Oe%"bCQm X"bC PBmX!a CPmY#c+CQm X#c+C P FmX#cCP!! F! F#cfcjB𐁺FH!xD0PK0FJ)F{DzDHO`}mSeb]B]ABX- F"R*CPBPmX"R*CPBmX#S+CP! F!! FJѺ@L\HeSEH/B ЫK0FJ)F{DzDO`2sh+ЦH!xD0H!xD|0*FPK0FJ)F{DzDO`BPB'chH/BHp2B ###mB[BX"`BCBPBPmBX"`BCBPBmBX"`BCCP`hH/BHp2B ###mBBX""CBPBPmBX""CBPBmBX""CCP)sh+ pK0FpJ9F{DzD|O`( lKFlJ0F{DzDoO`HeSE fK0FfJIF{DzD`O`(Psh+ Ѻ ^K0F^J9F{DzDLO` !@FZ !@F@S !@FԿIzHzx = !@F@6 !@FԿIzHzx " !@F@ !@FԿIzHzx  !@F@ ؿI8Ȋ #K0F#J9F{DzDO`# #f ``yd' 7wa Tu ``z`;`h[h+h{+{hH2B K{D JzDyhhrOci;hzhhh&FF7FQC{F;T+KJ{DzDOO`b _pFHpESXAsB'.jQ10EF?3cP.jQ10FEC3PE*jPp-OFFqwO DF 5FU?KE#h +`#h_3S/2C!)ѿ_HF4TEx6Bѽ-Aqv' ,FT'``DEx5Bѽ7F{T[) J#~!zD&@P $#S3Bq F F)F;9 0<C{F;T+KJ{DzDO`7 ?5""*s #J~!zD@P!FrF BQkDk$F(AK0+O~S` p$#HaTB`Ҳ*:Ҳ*("$##wR@w"w"w-O FD$!FF6F(B 0RiB6[3_S/2C (ѿ_AiB$#&CZa&aZF)F F$#kCW`D$#*FC!F0F`O;tFF{Fz*J3Fq!zD"ABBر_ABA BB HaRB K(FJ{DzDO`+Jr!(FzD@P $(F F!F2Fn Fpp{4ADBر_ADA DB HaTBKJ{DzD~O`*F Jl!zD@P $ F"!F0 opO0 FF{FZ-J+Fh!zDABBABA BB HaRB K FJ{DzD9O`+Ji! FzD@P  F# F!*F 0&oF{ FA DBHaTB ADBKJ{DzDO`* F J0Fw!zD\@P $0F+F"! FpmoKF{F*J Fo!zD#ABBص_ABA BBHaRB K0FJ)F{DzDO`+Jp!0FzD@P $+F F0F` Fp:n0 FF{FRj*J#u!zDA BBHaRB ABBKJ{DzDhO`+Jv! FzD@P  F# F!*F 0Cn# F{FFF l,J#u!zDADBKJ{DzD(O`+Jv!zD@P$0F*F F!Z F8zzp*Vl𵅰 FF(` :)0J#~!zDQ <F*Jq!zDE@PH+&Jr!zDA@BؤP(A @BHaPB K(FJ!F{DzDO`%A@BHaPB&&`HGJ(Fs!zD@P(F#FX  lP0HBhHB0X`T2D`@2`0FX2 FhBF#T2X2D2B(F#@2D2w&iB(Fxfaa$4B0HBhHB,XT"X2[3_S/2C (ѿ_FD@"D2[3_S/2C!)ѿ_0:0pG#`C`pGp F{FFFv^. + +J_!zDV@Pp@CB@SB*`j` pK FJ{DzDO`p4. |_8/KB.(XУB9Bf`pG*KB$3LSB-Cf`pG%KB! أ3LSB!KBCpGKBа~_OpPpGCf pGC@pGO`PpGCpGCf pGC30pGR*рp:*C@*ژpGC#CP0pGOppGL>>L?333?fff?-CFHFFF PF)ҲДG0CBCA#*HI`O &+#lJp 'KP%P[HF\% 'G \.FF@UQr蹸ииOO ...& &/// %/ 'h"b"p"BB"xB""pBS` '' %8F- F{@(FFzȿg3H F!xDf(0K F0J)F{DzDO`O)H 3S#S+Ѱo ##"+ @`@H@HZH H # +(###( "(lDPE0j%!i@bACa8&h8F{ Fñ(F(lL"Փh#s#C#p#@` H F!xD 0( K F J)F{DzD!O`8ci Cca8gmp-8 0Xk z ȿg F  z Կ`g< zԿAg1 zԿag'!lhC%(!)! ! hȊɚ 芍0 CC  +`0CCk`# I H F@h (`C@h` pCF{FFM F!}D`5(F(K9FJ{DzD 2F!(FPK1FJ{DzD FCO`8FF0F )FF FJ0I HK F jfe-GFF@WQFF a#{F ,2F!DPF(GK1FGJ{DzD :F! tXCK9FCJ{DzD FO`0F-F_# B]%@CBзoXȘ@WQN`PPT8l(̿3F## "S@겛CBT0Bb@CB x@WQ_`=fd8l&o(ؿ&izn#s@CCCca @CB,spF{ F(FhF@VQM8l%H F!xD( K F J)F{DzD8l(ؿ%Fi-@WQ#C]@almpXn`lmpn`8l(&F7Fi#8"r#`cF#aM$I8lBA#!A`dH X zzzz Hzzz    #"`8tu #iCsiBC##a#iC#a:B)F F6L(gh/@ăCETHEH:E&uHE@h1l@B! AEH5dXY8Fl@*Կ  +j#C# C@#@C(b F1l @11l F!1l F!{@_怸6onظ2oŀظ1oW5o\@W3E0MHtB΀HVB̀ABHQHWBHXB~HGSB HBHB HHSBHbSB"aDž0+`;hCJ0F6!zD@P5HASEzKaFzJ{DzD "F !PvK!FvJ{DzD0FO`_qJOSzD_ mJOSzD0F7!k@P@F fJ0F#8!zD[@P(?a"HB2HVB2HQB/)HWB HXB!#%HGSBHBHBHHSB HbSB "# "#",#?#"##  # #D $#%  P 00S% B 5-OC"[F OC"[FFHF(0Fw@P&;hjxL_S/:C!)ѿ_ ;h!F8Fb%E̿#+FKF;hXk'(F:rs=Ϥ#-C FFHASBFF 1K2J{DzD O`"F!FO,i!F(F:F FP#FC`!F(F`H0FHF@PwhGJ FH!zDS@Pnh:JI!zD,i37JzD(j4JzDJ!૊_1JOSzD늳_ -JOSzDK! F$ 8C(JL!zD F@P5 3hjL_S/:C!)ѿ_ 3h"b3hbL_S/2C!)ѿ_!$늪0F3hXk^ FpQyFF9)(PiiEhݱjܹjر9h0bh_L3S/2C!)#_ Fb     Թ$@hh@[hc-AFFHhxhhF4B@FAۿL_S/2C!)ѿ_L_S/:C!)ѿ_ Fa`(FF FFFp`D` F`XL0_P?3@2*ѿ_)F0FFhxL_S/:C!)ѿ_ ((FO0 F-AFFF2FHh+hB!khB#0chxL_S/:C!)ѿ_ (Fh!F@FA F8 OH SBѐ0pGH0pGHCB pG#JhA@$!KlIh@C1pFh F+ +FiFpk0F Fikl0Fx"Fi)F0F+#ca#&`!F#a(Fcccd`pp FFF(F#ihFp@-OFhFFF/,/{Ci OhH SBHCBIH!xD`HC FH!xD0DH9FxD 0HCbihh-qF(nT=K  {D(3HC lciFm(Ucik[lS"0h\h-H,Fi3#ж OH SBHCB RF!XFRF9FC,RF!XF<0RF9F6(H@!$%FHC 2P 2@ B HBB FFH@H@xV1pG8hLLlB$Jdc@ F8 8Fh++ CijlTci@ml -A#FFFFahh++cijk(F"laiC(> l+cimEF%o%H'hFE#h ++%0'h#0mhcl+%Gs*Fahx c-8Fk F0c FH!F(Fh03!F(F 88 F0S@USB @SSB@RSB@ig@WSBHBHB jXiViTjR@jPjNkL@VSB@RSBAHB HB@WSB5ѐ0H0h0h0 +('     jRT ,     D -C@VQ-FxMP>FMPn8l(ؿ%%h@VQ#E`h=l3l5#SC33dh#`I8l@#(Կ  F(@h@WQE@`Xkm/FN`P0N`'8l(ؿ&&{i_@WQ##^@{mFF&FFf~amxe8l(ؿ&Fi@WQ#^@a\]^ph\]^p8l('FFsi@WQ#8"r#`cG#sakn_``x0{f_``8l(ؿ&&i_@WQ##^@{nFF&FFfanxf8l(ؿ&Fi6@WQ#C^@almphnPlmpnPf8l(% F/Fi#8"r#`cE#a8FFHIp)JҲK`ГG0CBCA#*HIpO '++lJO K`&R[ F\&O G \7FF#@UQ ййO O ///' 'ۀڀӀ &O h#b"p!AB"xB""pBS`HX8F.Fl@*Կ  3jH#C# C@#@C0bx.l;l@6#SCF3;d8l@C(&;l+wF#CzzȿCȿC:j"pB3;bh(l3l #cC#3d3j#s3bHM8l@#(Կ  F3j 0b(lX +l#cC#+d+j#+bH'8l@#(Կ  F+j(bO O &+ zzȿ#ؿ#|x8 FFh+CiBFKcm+mB!FH@0+ 0B!F8@188Fh F+CiBF$cm+mB!FH0+ 0B!F8@ 8-AFOpFZF(\Or!&S/Ca)#_d #%0 #eee`dPPP`P`%ac(edQpױ`+F"AF PF`( F8F1F p`pp`p FF_S/:C!)ѿ_ 0!FH F Fb#p00 F@-AFhFF0{kF`(F4FF$kixCska+iCs+a_7_W?3G2*ѿ_0F FFChk4chH`h~#c` F@-OF{FFS)2J F'!zD@PY,V&FFEKT(p/D8/i9FuF3 :B"(FoF (F.F (F2 #0 (9FiPF1.@P F0O3F#0+ShdhHCHCBG$km*mHC ,O CHCB240 C ,H SHCB4,HVRHC, HVRHCB FFH@H@08FH@SFB # J#`)F KzD{DwO`8HhHC#`8h} ` 8-AFFH@SBF 2K3J{DzDRO`ShBh+0 "F(FF(F+{+(F>0F7,i!F8FdF IFP#FC`!F8FH0FF(F@Psh3!@Fp`("Fqh(FH((F(FUAȴ8-GF FFF "H@SBKK)FKJ{DzDnHASB GKHJ{DzDO`03CJ:!HFzD**MF0=KHF=J{DzD.i1F FCh{(FP0J3F;!HFzD@PGh7Fh+kiB (F4*Fxk0FHF{! #$)F0cld.#oa`07.aW,<`_W?3G2*ѿ_ Fг@ӳ &ݳ-OF{FFF H:F!xD00@RFB(K9FJ{DzDH@RB ЋK!FJ{DzD(F O`ІJKF=!(FzDhrhBJ:!(FzD_gO 0hF(jiBja1h2h#0c+΀+̿""` AFPF [BhB1h FrdJCF!(F@PKJFzD3hC(M1h F-2h#9FPF0JFcF8 PF#:F,0)FPF(0ACAKF(EJF9FPFF80S((FF@P0"F1hPF8F(F5@F # `!F<'d`d0h_Z?3J2*ѿ_XF@P %:}N$   -AF FFFH@SBCKCJ{DzDw0CAJ:!zD)@P9FI(9K9F9J{DzD[HCB1HCBHCBHHlSBBI6B>HCB&;h +)+нAs%HAS"h+4i +`J KzD{D$h+k+`&KJ{DzDh+ l@R B(`+`KJ{DzDhKJ{DzD!F0FLO` ̱Ա"S[;s"FFF" FC"]BH F]A"( F5(F=!F8F@9.8FH8B`0+,+{ FHCBq(F9JF?!(FzDI@P8 !F(F8yF(F F8(F((F"!F 8İ-O FFFH hSH@RB{K)F{J{DzDD+xJA!zD܀ qrJF@!8FzD@PnMnF}DH5ƕ[ bF U(Y"B2)@q8F]JF@!8FzDO`+&A 5FH [EE,Y%0SEس_AB O[EHBBH QHA!O A F"F F65"AFH PHNA BEY"0Bس_cE OЃBsEEE E2R0F؀.` #hF# .!F8Fcmlah3#@h2"@C 2"@C!B FLBE@^ f֭`iHF80i۱8x8 8 F@@P8+bIFBذ_Hk#B pGIGBIHB pG pG pG pG pG*pM $P%P@F,@@+ CCI #@P!0#C@!@p h`KhC`pG-AFFP 8FAFF ,F(I FyD)F2F FH I FyD0F AF8F F?!@L+h8(  pG pG "OaK{DO3~]pG_-AFFFСAL9)K{D\\ $F3FF!F(FA^=$F!F3F:F(F4T ,ѽA"F!N F#IHOQ@-OF0FFF h#2 F>V)i(FF F(iAF;"F1h(F FARFIF F"!F@Ff(T7_E VIFD=RF}!F(FHIFRFs!F(FF!F(FF!FJF0FpI0FyDHF"!F@F(@,I(FyD>` F( I0FyD@P1h(F_=#+pFFFiF'FB-5FL:* K{D\ $_d #U$ @@@B pwHP#BHL#B HxDpGHQ#BР@h8(HxDpGHxDpGHxDpGHxDpG`NTZ.8<( pG``aCaC`#``pG-OLFFFF8<8x8(CHF#PB&HL#Bк9OaHF<8*F9F0FCFGUIFE k iFHJ#B+Fk:F(0 HI#B+Fk:F403(+@8+' ,FHFPF;F2FPFXxT8X T@83@8@P -OF8KFMF6JF{D@HX3h4HF#B<@F.KOa-J{DzD\8F(FKFBF9F F=@SB/@8++x8CX(#x8c`T(X8 T8@83@8ObYF(FD4"9F FTKFBF $3hB M ~-CFKFMFJ{DF FX"+h4@4<4OcF84BF9F0FKF\$+hB^ M F@h* F@"-AFF" FF!`B`cc˱BOaFJFp.F@P2F9Fr#0(Q+B@+((k c(44k"!(CQ c(4:Hc( F@h k(IyDl##ckIyDd F@LH,  1LH, F FHG!  FL(* HF!IFHL"]pG-O F C6JKFS!zD@PaTH'=FFjD `@8]@XPBOa`hrF EA@%ah_FFhB%0hB%0ciB%0#iB%0X85BXTE#hT8x FTH!FJzDc]J!zDX-OFH0F FF@CF;D+Ҁ8F( з_ oK9FoJ{DzD(FO`CF;+Hk#B@𾀸eJCFM!(FzD  Ѹ#_JP!(FzD @Pд_з_ж_VJzDUJzDUJzD(FQ!@P8 (@P; K HF#Bд__HL#Bз_-IFBж_& #O Z#J  P"A!3@"CE"+!!HJ#B э 3F:F 0 (_HI#Bэ 3F:F < 4(F"@P_HJ#BHI#B _?*KJ{DzD2_?> K1F J{DzD'Ȧ x7%J-GFCFI;F+F ,K-J{DzDF(*KAF*J{DzD CF;+Hk#B $K1F$J{DzD(FO`27 JR!(FzD ,Oa8FFo JOcN!(FzD@PSFBFIF(F@SFB(F F  -OFCI;F+FF88K9J{DzDLO`dD8?+4J@#U!zD@PW/JV!zD-Oa@FRFo 'JOcN! FzD@P78@YHE F@P)@ PF(CF*FYFshHi"`9F FHk#SF0FD8Ph3D8ɣ F8@VWB F@P,PX+hCJ FT!zD&@PohOa8FHk#Hj" FhhB+h(FP8D8;D8 A)8Fi((`@P 8pFhFF(p##`p+Oa JFF.D#<(F `pF!(F"`8Xh8@P[h+#` F88i8[h+@P #`#`pGFh##`-AFFFF#F F**OqF8F0F- J@FOsW!zDn@Ph F(@F@P*F!FN 7`xUFH#BFF H$BiAsBH#B@SFBcKdJ{DzDj9F @0F8)Fh8@TXh($F @SBTKUJ{DzDp 9F F 9F FCh+ 8$*iiF(chB`@h9F ,aѐ0mB;K{D;K{D;JzDF$BM)F@SFB 4K5J{DzDO!0FDFL9F p8)FXi8@TXh($F @SB "K#J{DzDO!0Fh% 9F 80KJ{DzD0FOdTKJ{DzD (0`$ KJ{DzD@TO!0FA FwԠ=z+U _I pG pGhHxDpG1#0D8$IFKF8H!F@;@8I~@0h H A/謞p@-P@Pp(00Q~0p@/$p@-P@Pp8@}013/Pp0p@4/ܝp@-P`@Pp@Xf 0Q5/Pp0p@4/ဝp@-P`i@Pp@hM 0Q5/Pp0p@4/@--@`AaM@P Px10iIh H 13/P0@4/ᬜA--p`P-@P |0䁓@@@I@h H 8/P0A4/,A--p`P@P |0聓v@s@p@mI@h H 8/P0A4/ရA-M`pP@P PP0 Q5/PЍ04ЍA/Ԛp@-`-P@P H0a-@*@ H 0p@/p\p@-P@Pp<0 13/Pp0p@4/p@--@`AaB@P tg8巤0J*iIh H 13/8P嬤Up0p@4/ᄙp@-P^@PpXB8咤013/8P勤Up0p@4/0@-M P>@P "8rZ*z0z2z z 3/8PbUЍ004Ѝ0@/pp@-P@PpX8H023/8PAUp0p@4/ȗ0@-MR@P 8(Z*z0z2z z 3/8PUЍ004Ѝ0@/Hp@-P@PpX80 23/8PUp0p@4/᠖0@--M  0@P- 8ۣ0  R0 @+ @&  @! @0i@*Ih H 5/8P帣UЍ0043/Ѝ0p@-@-gPP- K8団0 b @ @ @ @i@*Ih H 6/8@xTp0p@4/p@-P*@Pp<0 23/Pp0p@4/ 0@- MP @P L^0 R5/P Ѝ0043/ Ѝ0輓p@-P`@Pp@ 0 R5/Pp0p@4/L0@- MP@P Lb0 $R5/P Ѝ0043/ Ѝ0p@-P`@Pp@ 0(R5/Pp0p@4/t@--@`AaBb@P Xf0j*J*iIh H ,23/P0@4/G--p8`@P T7"0 R5/P Ѝ04 Ѝ@/pp@-P!@Pp<0 23/Pp0p@4/G--p`S@P 90ᤨਂw@s@o@k @I h H 8/P0G4/ጃp@-P-@`Aa@P X0 iIh H 23/Pp0p@4/G-P-p0`@P 0 ᤨ尒"@@@ @I h H 9/P0G4/4p@-P@Pp i0p@2/ጁp@-Pu@Pp Y0p@2/L@--@`Ab@P LF0Ih H 23/P0@4/A-p-`PD@P t'0ᤈr@@h @H 7/P0A4/ሀA-P`p@PDA0 R5/P0A4/@--@`AaBb@P \B0j*J*iIh H 23/P0@4/pG--p8`+0 `,Q5/8P姙UЍp04Ѝp@/|mp@-MP`W@P |:8劙 00Q5/8P~UЍp04Ѝp@/lA-MpP`,@P xv8`0 ` P4Q5/8PTUЍ04ЍA/(l@- M`pP@P t870 P 8Q5/8P,U Ѝ04 Ѝ@/kp@-P޻@P Lz8(0<13/8P ppjp@-M`P@P |{8.0 P@Q5/8PUЍp04Ѝp@/|jp@-P`ᙻ@Pp\}}8͘0 D13/8PŘUp0p@4/i0@-5 MP0w@P t~Y8婘 0LQ5/8P埘U Ѝ0043/PiC-MP`p0L@P /8( 0 PQ5/8PrUЍ04ЍC/hA-MP`p @P 8S(0 p`TQ5/8PFUЍ04ЍA/gA-MpP`@P |!8'0 `PXQ5/8PUЍ04ЍA/Hgp@-Pͺ@Pp`80 \13/8PUp0p@4/fp@-P-`@@P l8ޗ0 H T33/8P՗Up0p@4/ fA-P`pᅺ@P`i8幗0 XS5/8P尗U0A4/eA-P`pc@P`G8嗗0 \S5/8P厗U0A4/eA-P`pA@P`#%8u0 `S5/8PlU0A4/|dA-P`p@P`8S0 dS5/8PJU0A4/cA-P`p@P`810 hS5/8P(U0A4/lcA-P`p۹@P`80 lS5/8PU0A4/bA-P`pṹ@Pd 80 pS5/8PU0A4/\bA-P`pᖹ@P`z8ʖ0 tS5/8PU0A4/aj < =z`Hg (h)j @j ziZ#(ZjFhJ)F) (F(J)%ji:hj(z(hz H%:vZ6 ijHjIZwdZ7$z:jwjwzZ jz z  *! F0A?8?|=5<.0E8F XERX ((EXh+#cccc F*1!(F0E8F XERX #F0F*5!(FpE-F8*XEX@`AaBbh0q*wٵ@ rbz@z@4ѵ ط*[!4J0F+zD [!.J0F zD @)JX!0FzD@5$JX!0FzD.ERXzh*(FH*kKj J o/#F*F3ʢBC CF!0F*F!F F* @P*ؗCbIbVb[bE-F8pz@XEX@z`AaBbhrb1 @ е@(JX!zDz@$JX!0FzDo@5 JX!0FzDd.ERmFXj*hFJ*iIh H o/#F*F3ʢBC CF!0FujF!F F* @PJaja9a(ѱʹAABABA B K{DK{DJ2!zD @P %`-GFF" C- FFHp3F*F F0;F2FIFnBF!F +F,` (0;=+FBF!F0FF -CFF" C- FFXX;F*F Fw2F!F +F` (0;=+F2F!F8FMF 𵉰FF"C- FF8H3BH3BHdSB2F)F;F\ K(FJ!F{DzDO` !2-AFF" C- FFBHH3BH3BHdSB2F)F ;Fv K(FJ!F{DzDO` 𵉰FF"C- FF:F!F+F%`(0;=+F:F!F0FF 𵉰FF"C- FF:F!F+Ft`(0;=+F:F!F0FlF -OF!JCF'!zD@P6 38 %O _hEEY%`.i1F8F @FahaPFbh t`h#c`1F8F F5*@0H`UBj!Ѳ_hHRB HRB#4 j#4#@ j"S@ b 0O`00H`UBjѲ_($@j@(HR `0HR`0O`0 # ]D=#FD=#F#s@SBF FF HeSBKJ{DzDVO` )F Fm+ FT@P3F*F!FTp~\@A#O~R`C```CaOcaaapG-AFb3FFH+F+v/ zz1h1F!Ct3iB@B4BbBбo>z z$(gzz(2z$zj(wgz@zj'zzj(zz |z$(gzz(vKvJ{DzDa(iA0B`#CB CSa(Sj#SCcSbSj#SSb:F!0F " շ (F^Jc! zD@PCt3 iOioLz ' "@iBlzEzgzz8"]:F!0FZC" t3(iOMiBaBHzz7 @ z- z':F!0F1C# t3(iO$iBaBѓzz0Gz@zz  z8 Dt4,kiCka OAF:F0F K J{DzD(FO`;?a?^[2>[ -@f4Bн@KJ{DzDO`Y,T, F K J{DzDO`SZBOZAKj#cCcKbY,%0!O~S`C```B $BBB;BO~S@@008z@zz`z zAzzaz"Ѓ  BiB"Ba(iBA(281SKBLBKBCiC#Ca $ % & pG FFB, K J{DzD O`:  #4<p#hzF6[S%[Czgzz@zz@z#@*2#C\C۲[3#B $$i# c@aS #@iCap-AFFF`F%B)FBF8F5 -OEq('O O~TaMWTC`I3N|tYaaa!]```dde FabYbbbcYcccdYd\e! Fh  z & *  K LlLpLtLzWffg\ggg@@L|PLPPL@L PLPLPL@LzL L zL(L zL0L4L8L<7L/@LDLH`Nw"X#Y#[#Z#\#ChC#CsC`L>L?4CoFFFH|K|J{DzD+{Jk!zDA#B=ز_A#B&AcBAcB𧀲_@@"9FH08i-@@"9F08i-@@"9F(0E9F5$"D'4 Tz zYgz!@zTz zgz@z z zgz@z###@\0C`4۲Y3 B(@!!(i#@asiCs$!8F' $z  ݷ j!#J0F zDd@U1D siC#sa'8i D"49F3"9F,siC#Cssa K)F J0F{DzDOe%(FC1V5@VT&pFAdBѽp@K)FJ{DzDO`pFpT&-OG/-F FFH\4\${DzD#P$e!zD` RE5[ X * _&w SF"IFXFPSF"IFh0SF"IFxD(Dz# zY#gz"@zz zgz@z z zgz@z#@\C۲Y3 B(@!!i#@K@a  "!XFESXFX0"IFSFKz` zUjgzzFzjzFz#jzFz"zjzjzgz jFzzFz$jzFz#zzzj!Z'zzjzj%Zz$zjzgzFz"jzFz&jzFz%zRF!HF շ J zD` U& 0RF!HF  ՏJ zD d!0F` U' RF!HFq շ J zD` U( :FYF0FS  "!XFESXFX0"IFSFz` zUjgzzFzjzFz)zjzzjgz jG&zjF&z*zjzjgzG&z!jzFz+zuRF!HF Cz IJzDG` U, [RF!HF9z@g ѕX##@"3JX3`#S +/z ص  ## @X# CX3 `#S- &JzDf!0F@P#\X3(Bi!!#K@a؊TqE-FFFx@S2B(@")F\0KciC#ca(F!X @i F@Or"#sS@a KJ{DzDO`_P!@R4Bѽ@KJ{DzDO`hP -CFEFF65O8F@7nFBfWO0F@6nBE%O O&@n"DC .D 5ESAPESPC381C/BORE@Pp`"8r 033/8PiUp0p@4/Ip@-M`P@P x8P0( PS5/8PDUЍp04Ѝp@/(Ip@-P@Pp8033/Pp0p@4/Hp@-P@Pp8033/Pp0p@4/8HO-M@pP`Ĭ@P xF8 0 PS5/8PUЍ04ЍO/GO-M@pP`蘬@P x|8̉ 0 PS5/8PUЍ04ЍO/GA-MpP`n@P tRR8墉0 `S5/8P嗉UЍ04ЍA/pFp@-0MP` 0E@P x(8x  0S5/8PlU Ѝp043/EA-MpP`@P t^8N0 `S5/8PCUЍ04ЍA/ E@- M`pP@P t8&0 PS5/8PU Ѝ04 Ѝ@/DA-MpP`ɫ@P t80 `S5/8PUЍ04ЍA/C@- M`pPᡫ@P tn8Ո0 PS5/8PʈU Ѝ04 Ѝ@/@- M`pPc@P PG0 PS5/P Ѝ04 Ѝ@/D>p@-PG@P L+8{(033/8Pspp=p@-P,@P L8`(033/8PXpph=p@-P@Pp`8E 033/8P<Up0p@4/<C-MP`0p@P t8  0 T5/8PUЍ04ЍC/h<A-MpP`é@P t-80 `T5/8PUЍ04ЍA/;p@-韩@PpP8ӆ033/8PΆUp0p@4/4;C-MP`0p~@P tb8岆 0 T5/8P姆UЍ04ЍC/:A-MpP`U@P t198剆0 `T5/8P~UЍ04ЍA/ :A-M`pP,@P P2P0 T5/PЍ04ЍA/h9p@-P`@Pp<0  43/Pp0p@4/8A-M`pP@P P5P0 T5/PЍ04ЍA/80@-MP ֨@P |8 0 0  PT5/8PUЍ0043/Ѝ08@-M`Ppᬨ@P x80 p`PT5/8PԅUЍ04Ѝ@/h7p@-P`ᅨ@Pp\i8幅0 43/8P居Up0p@4/6@-M`Ppc@P xG8嗅0 p`P T5/8P勅UЍ04Ѝ@/D60@-P-M@`9@P 8k 0 00P $T5/8P]UЍ0043/Ѝ05@-M`Pp @P x8>0p `P(T5/8P2UЍ04Ѝ@/4@-M`Pp@P`P 8 0 00p ,T5/8PUЍ043/Ѝ44@-M`Ppᴧ@P x80p `P0T5/8P܄UЍ04Ѝ@/30@-P-$M@`A@P j8庄 0 00P 4T5/8P嬄U$Ѝ0043/$Ѝ02@-M`PpY@P x=8卄0p `P8T5/8P偄UЍ04Ѝ@/2A- Mp`P/@Pp`P 8_ 0+0 `P5/8PUЍp04Ѝp@/ $p@-MP`ᱣ@P |_8 0P5/8P؀UЍp04Ѝp@/|#A-MpP`ᆣ@P xaj8庀0 ` PP5/8P宀UЍ04ЍA/"@- M`pP]@P xb@8吀0 P P5/8P兀U Ѝ04 Ѝ@/,"p@-P7@P P8j(013/8Pbpp!p@-M`P@P |e8L.0 PQ5/8P@UЍp04Ѝp@/!p@-P`@Pp\g8%0 13/8PUp0p@4/| p@-MP`Т@P |8 0 Q5/8PUЍp04Ѝp@/0@-5 MP0妢@P pj8 0Q5/8PU Ѝ0043/LC-MP`p0|@P |`8( 0 Q5/8PUЍ04ЍC/A-MP`pQ@P m48(0 p`Q5/8PwUЍ04ЍA/A-MpP`%@P |o8X0 `PQ5/8PLUЍ04ЍA/Lp@-P@Pp\r820  13/8P*Up0p@4/A-MpP`ۡ@P s80 `PT5/8PUЍ04ЍA/$A-MpP`ᮡ@P u8~0 `PT5/8P~UЍ04ЍA/p/////////////////////////////////////////////////////////////////////////////////////////////////////@-齠P@r@-鶠P @-鮠P @-馠P@[@-韠P@T@-阠P@M@-鑠P@F@-銠P@?@-郠P@8@-|P@1@-uP@*@-nP@#@-gP G@-_P@@-XP@ @-QP@@-JP@@-CP@@-<P@/4 I"yD`9 -GFF" C- FF;F2F)F[$#BF!Fl0pFKF 𵋰FF" C- F F #*F!Ff3F 𵉰FF"C-F F#{#HdSB#2F!Ff;Fq K FJ)F{DzDO` Ke\-AFF" C-F FX#{#HdSB #2F!Ff;F K FJ)F{DzDO` dg𵉰FF"C- F F#*F!Ff3F= 𵉰FF"C- F F#*F!Ff3F -OFF)JCF'!zD@PE B $ 8_hDEY$`.1F8FrF#ɱZF(i* #Sg#01F8FPF>4#sF FF{@SB HeSBKJ{DzDO` )F Ffm+ F@P#*Ff!F3Fp l8 F{F @SBJx!zD)(F8) JzD B Jx!zD F8:JzDy!@P8 8;, F`,"!>0F Fv 8F0 b08F0F(? FFj F(, F@A#`pG)8Fi <@S#`8 h#`@h8-AFFFF+8F(hBF8Fsh F;s`#y+ ѣiS F)F@FA-C#`FFFkF8 FH(F0F@P#(HFF(F"FHF[ Fp-CFFFr*F0F F+{ӹ J(Fz!zD,@P0+ J(Fy!zD@Pp{j##;p  HF8FXh"0FHhF9F0FW@F~8F!F0FqFh;+@h#C` @hRB>ѿ_ F@Q-OFFFFp+B+iFF){H1J(Fz!zD@Ph+,Jy!zD Bh a0K'J{!zD(F@PSj3Sb s_S/2C!)ѿ_FXFu@0C 0/i9F0F8ChXjD\bx+ :F1F(F -CFF FFF jF@#G#`@PF(Fp(F@F'` F( F+ ` F %`@P8[hKE F BF0F4(н?CXBXA]-OFFFFHF-AFFHF'F F(L#{ KAFPF3(=5_,PFHhCEJ|!zDPF F0FF.ZFhHF+hhBJ}!zD F@PU?3E2*ѿ_{h3{` F4@P<1-A FFFjF F)FF FF0F:0hB 3{K@ J0F!zD[@P F+FBF9F -O{Fh F @SBѮJz!0FzD0P,ЪJy!0F@TzD%EF0F!  P0㹞J5I(FzDyD (0FJFzD!0F(F @T$+БJ5I(FzDyD (0FJFzD0"h0F`hH02Bh"hh"hF3{ӹi+Ѹ0+tJ5tI(FzDyD rJ!0FzD O 8FF #h  h0  0D FF(F(?`B#pA#CpOT ;"qBqBqq#CrCOjr 8F '$+HL$ OSU07ZpORpI"  p"@ZqObq!qZFF r_DF " F F00U 7Zp p pk"F7 F F~֮CF:F)F exIF0FF0F3iCs3a FkrPJ-CFFF3{F@SB8Jz!0FzDe,5Jy!0F@TzDZ(j#kph-J0-IzDyD j(j0 a(@=3sE hCi* h# h !qE)hLR2$tEСBhйE0R|F{hEKF:h 0FiE4 21#kp$@T0F FbsFFFFt+{. J3F!(F@TzD$@SBJz!(FzD, Jy!(F@TzD j$1F0 Fpx-AF{ FFF< D# F.#:JJ!@TzD F @SBCJz!8FzDw,?Jy!8F@TzDl-iH3B:H3B3HAsBPj0IH3BCH3BDCx?H3B/H3BH3B5&K"X0ji$H3BH3B$jixj)F0 /ChK"X0jiji $0(` jh+`$ K1F J8FOd{DzD,F F8. N9,SWI-A FF{FF$" F{$+J!@TzD.0 Fl@SBJz!0FzD ,Jy!0F@TzD$0:m,F BڸЃhH$04\,`$ F% -CFFFF 4'+{F@SB)Jz!(FzDG,%Jy!zDj2#J!zD(Fh#0E/N#3`:jh#0!J(FKFzD@T;j ;j03`Has$0DF J{!zD. F G zk -OŰFF8<+{F+HasB вK!FJ(FOd{DzDQ@SBѬJz!(FzDRE,ШJy!(F@TzDG:F@0j ; 8F XF и 0jJI0zDyD JzD@FH0j0 (F@TCFRFH118FF0jJI0zDyD J(F!zD8F f$CFRFH01XF0j~J~I0zDyD |J!(FzD8F KXF HgI F$PqJrI0jzDyDG`I F  B( BZ  \3\ ] +$#ZJ[I0jzDyD4\E^QF-(F * QJQI0jzDyD0o R4X \3\  #" F F(@FO4F8F ' 0J!(FzD8 FF'':F#FIF(h F8F F #JzD!(F#1F(FF(F+iCs+a FE1SBMTTAB+ 9 Fa(   *P(zp)@@)@ @R0pGOppG-OF-OA O FFJF#qB:_F%B,3+z  K@ H  z@z  <$5DDTD2-GF F FF*@SBRJz!0FzDG,OJy!zDjh2LJ{!zD0F7>x!EFJ!x1zD,jO t hDh$ ,"Q  $?3TFi,OF/Ѹ(/J!zD0F@TGg Bе & pKJ0{DjX"iF FxFt xO0#!Fi 0.$ ,7#jFIriyD @Ch+i+k+O3|1DD0Cc0K?BD D/D >D D . ^ L E14BFFFqEQD. BF F9F>#DD [h+jAojCv +}B л { #xO <ZC& FFF/z @z  <?  4D :D D 0Cs0 4D :D D #F)F"BڈF' Bz @z    #7 2D D D (F 9F :#F 4DD D J F!zDB#   M   F1-GFX{yО-=J!zD{)+xB8J! FzDntT\ hHh C (A^(i( F@P( 2"(2"*\ *  "iBb"a{h+#zg Ѓ }hE(#iCs#a0)F F@SB. y-Ax7AJ!zD@PgFhf F@^-GF{ FFFܹ+ FJ~!#@TzD~ ( @I" yD^=J!zD9F(FF@SB6Jx!0FzD[,3Jy!zD0F@TP <F0F6  FHF,F((F@T6"F #@3U0FFJF PFF@PF@F`HFqF2O JF P Z 2 bE ۱?БEFFF"0(bEHБEJ F 6J 6IzDyDU40҈L" F"2p#O2A# E# 3+sO2tC/B#V# *$B@<3+"FU#@,A# 2+#Q# *@"03+#V# *Q" F# 3+"1F8j M0 @B%X8F F#`q``aCaRB0(_ bW F8F0 [hl`ihG F@\-CF{FFFs C0;+ KJ{DzD]O`FF8 `FH0F(FW@P#F``HFlF(F"FHF F"pGuFFF*iF8F[F#{FJ Fz!@TzDz3hCJ Fy!@TzDophi#$q t0F)F8FF F pG@ ]-O FF{@WFF* FzF!+;J!FFFH1;EOcU*PBh0ZE 6  翹H`sB F;J F!zDTO`d6JCFzD .&Oh  =1J3FzD! F; [-J! F0zD/@P?#0P -"J! FzD@P+FRF5Q_+h06NE (J! F0zD 0 F@P-1<50_P?;@2*ѿ_pG#`pGHxDpG%p# L8%|DYB"DRhB3+O0pFp-AFFFF(O0TF j#O2%``#a`aaaK8&{D6h8F ;hChH01iri`#%`#acaaa"#bbbbFFFF(pO0F %O2#`""a"%g``aaabbK8&{D6h hC$ H0%ga#`!cb#!a!aaa#bb 8(0//////#)AC `A AC `AHc3H4 H3AC `A  AC `AAC `A`pG8FF K8!{D0i+pCi#p8\J8 zD i :J8 zD i @"!F?"Oc \_S/:C!)ѿ_ RpG-AFBF2F(nB!/ -CFFFF+M+I % hC!H(FF hCO3 ##!;hH 3 @@ Fh 8<`>^ F ?-AFFFFD-8)4 ! 0FE 4 $ 7`C;h 3H @ FAF F >-OϰFXF Y#z(F( ''Ow!O  ZGC   XE)F  g.D̿v&̿OhOE,@'D J +%@B !guuF%F(  // "xBFd#FFE q"!IDB@8\O 4!2  D3DH0!FFB   EuSFOE$( OR \O "  \p Zp p3 p3  D1D17D*DAE@sF#;KD E4#H2F B ""@E!sFF B* a\pYpp3p30D7D $!F 0FLi QF% & h3*(F(F&HFvHFr O0OpF M}D+h#`#R#B3 +  p *-OFF(O #FFF&S3hBSG >#DUDi O [&0ӱO:u%9F%D D+n30Rh3L_S/:C!)ѿ_ #Rah;`6S"b *0FO:t( %R00-OFm #'S3hBF00+@F(@/mS3h# /F(O O:s& B]#\[Dn`(P0+Lacl+@ڀmDRh!?!DtC`m|DPj"BBA1bmDPh"B`mDRh!@A`mDRj!@AAqbmDSXj@@]b67:x /z 3hB8FP##frhQhhz  * 0FZ!YDoh; hR#Rh F!jcj_BbB mDRh!pAAA`m_mODSѡQ) hApA`mDRiCa h!pA`mDSi"a#jS+?+mSh"b>h*?" yJB FCSCCC#CC[3#A@!* "" B1!A BiI@ B3#C BmSh!aAb`mDRQj!AAaQbmDSj @ bmDRjAAbmDSj ` @0bmDRj A1bmDSk ?@UmDSk?@cmDSXk|@C]cmDRQk!|AAaQcmDSk @cmDRkAQcmDSk P ?@0cmDSk B2cmSh @E`mDSxB"`mSXh @e]`mHDSZh@@X`v<h *FA( $"D2P"0 *FA( %T">"R"D2P"0 )0( !O:uBX#F1B2CF0 )O:s( !pYCT"4&#hB 23DPEPBXCPpFFF L_U?3E2*ѿ_yh b_UOh*?/ }JB FCSCCC#CC[3#A@!* "" B1!A BmI@ B3#C BmSh!aAb`mDRQj!AAaQbmDSj @ b#mDRjAAbmDSj ` @0b mDRj A1bmDSk ?@U mSk?@cmSXk|@C]cmDRQk!|AAaQcmDSk @cmDRkAQcmDSk P ?@0cmDSk A1cmDSh @E`mDRxA!`mDSXh @e]`mHSZh@@X`{<-OFPFB\F.hFgKZ {DB1)jiB"cH*jijXA20*jkj+j3+bm_S43S/2C!)ѿ_mBP I (@"nmjBXJBX*GKO {DHBX+mBX3 F>(q#n+#n+%%f:F!F@F(a5Bکm Q1"FDXF,(##fLS 2 3hBmR+hFI*  Em-PR+ )jiB(jijA00(jijJ`*j2*bmR+ _\2R?3B1)ѿ_I 8B XBPt9-OF- ;i F }iO0C(0)F(ǚO *F!,EJF9F FOIhFCDh*@bi(h+@ހjUizz+hGjijg+zizGgGӻwHz7fzj(i7j7zwzh hi)''fzgzzz K'))8 zG'j펪:KIj :툊khʰh hʰhhh}k*FQF Fl jQF Fh QF FJ QF FL *QF FH jQF FK QF Fd QF FQF Fj  QFI F QFk F QFS Fi N ` ]kwПJ *FQF FujQF FE nQF FB gQF F `*QF; FYjQF F RQF4 FKQF F0 DQF F, < QF F( 4 QF F , QF! F$  QF F  QF FQF F QF F hCD]i-H(?AƱslh(гY>ݓ=>x=۶? ?+F:O m SD OK Z !m D *hVD"B2h*i*!!!D 3FH   a O0 FFFKJ9AQAAA!AA1 @*!B" '' G2"B Gbbkh"rbc0kYA8l#C""P`c8lCաh-E-%- M U- !!!#j1)ѡh )+ s0#b##3ccF@FO!jiDB#I"jcjyXC2"jcj]`#j3#bs_S/2C!)ѿ_0F   I t(-GF8FFFx!P0(OPC@FO0nK{Ddx3RB@@"!8F8F>sjzczrgj8FgZGjzjzFZjgZ:jFZj*Cbz0Gzz*CC"OД'#Ss'#SBs'#Cs'#CCs#pC'C#S@o2йo uIuH@uK@CsK C CB#`c"`bsr'#S@#C#8"J@#K@CB#`c"`bO@C@!@F(?1F x:F3rEC CFAF F$._Ѻ\0F#0#iC#a0BI07A(F@ 6Ya30` ;D[h30;Dh30;Dh3#FF0YBhh  Dh;D8(F.#i(FC#a 1#iC#a#i#- ")F F$# FF(Fa` # (F #i(FC#a #iC#aCEE:lFG  [h\"F#Y@!8`pG(k#Sc(kA1cpG(k#Sc(kA1cpGP8(K{D\pG pGH(K{D@pG pG2osD(K{DD0pG pG(K{D@pG pG@8(K{DDHpG pG(K{D@NpG pGAcB A SBAcBȹ pGHSBHSB AcB  pG pG pG pG pG pG pG(K{D@ZpG pGR@3B7@3B*(%67@3B'аA,  pGHB! @3BӰB pGHBHB pG pG pG pG pG pG pG pG pG pG pG pG(K{D@jpG pG-OFFFF~:FF(FI $ hh;mŠ)K#B*P  F+[FIF(FoәBЂBAF2F(FK(HF;@P#BF)F[FHFI9F F :F! FFxPF__LS/:C!)S QFB@ " F" FPF=g_LS/:C!)0 Fj F `_LS/:C!) F2F#AF(F_LS/:C!)ѿ_*z%v6>-CF F(𐁀"!D hl*Ob"#SAQC d*OR"S@`h'Fcj &bnk?K@b #bf"K@cbB)lKhh)+##+## *}si_UKA7-#k!ACcoCj!@AAsbnC@Cfk#coCgbj!`QAcbnC`SWj!aAcbnCcMj!`ACSbnC`Cj!ACbnC9j!`1A3bnC`3/j!AA3bnCC%j!`aAC#bnC`cj!qAbnCsj!8AbnC8j!K@bnCf2_akkbo!k+nBoac!bg"jlVм03;8"F9F(FXkh1FBFF m_\31F(F( FS/2C!)ѿ_OS"1FhFW-O  FFFF!JFFchOG +Cѣh+@_\3S/2C!)ѿ_mY`e#0e SD3T#xL_S/:C!)ѿ_ _DWD7D'FmKB&,! A`1RF9F FmDB SD3T#(L_S/:C!)_DWD8ixL_S/:C!)ѿ_ ^#0HF-OF-Chi+h2+0!:F0F*mB!\3_S/2C!)ѿ_m 6`e#0eŖ8F :튚Bg8F* xHz@ zzg "iӊB8F ^ Ȋ '% #*BGO&  BDBDbhB7RF!  Di$\C C _Q?3A2*PF_hm F\B%1F:F6HDE%7m&i{0[` & 7F@ FF(' 0 O :B &chB 6X7(F\:FAF F\SmKED3D[YE 5HFchE76: B7FF3D:FAF F\3D[Y#D@0g0D#O1HF3mPDD H0+RFmXF1;?-OFmh1F!F %FchBFO hEZHh0"!G  5 0;0#O  / FhF("  hE [(JF!F0+`mm FHFV-WK 7chEһFO JmhFB#`P0.hB+)jimBI*jkjyDC2*jkj_`+j3+bm_\3S/2C!)ѿ_`I (F%(F KAkahc JC0`j @BcCpCCbhsBKC`pG@?2 Ck#@CcCj#Z@?Y@AbpGpO`F`#`Os`O`F `@F8 hf Fd(Fph%&F%aea)Fae`V Ob)F0F Fp-AFiF; hDbi##`*%FhB#hS%0BXhG#hY#hY#hY$#hC5hFUXEE.` FA/иG)-CF Fi(G#aci;ca#i;#a NhhNC @W&XB hBEh#hC&@ pAFAFXdB FW!O BhBEh#hC @#i(F;#ai;a l@-AFLFhhLC @W$0;BhBXh `AFdB FW!PBhB@hAFX l@-OFCh FFBa`-i(@ci3ca#i3#a)F F i 3BO0(g`Jh @0FZ 0  C \#hY#B@`#hY#ih iWhOG (F2 ``w*F!&a3`ci#a#hS% #hC%`5]E h``oQY&06Bxch`# ````C``#bh```B`F8O08hh0(K{DVpG pGP(-C N~D0D!1AQ`a FFFFF .` `0(K{DDqpG? pG 8#(K{DDpGO0pG0(K{DDpG pG(K{DDpGO0pG0 FFm$*FFo0`G0pG\_S/:C!)ѿ_ pG"F! F "!`h F@[-CFF !FF(9>FŖ8FDH$`;i+8F h3 =iE#[ F(F0FL" dSC (ѿ_ FFFFFFl i8H3cj1#c`(F@"1DC3F`` Fy(F` FsFhFO3hl1 k F.O1`hxkhah"h`hhlD1DN(Fp-AFhFl1 k QF"#FhhvF``( F/0F/O1hh? F8FF.E``8-AFlF FBhڹ!lihH3cj1DD3@"`l``({Уl#d)O1`h3Уl0`hnkG ( FX(NchBhb`C`hh``L_S/:C!)ѿ_ "! FF5aC/ ## CCh_@R1B()_D"^`ܹ=O01 !@F* ##C !(Fesh_`3S/2C!)ѿ_sh_\3S/2C!) _8Fi Ch_`3S/:C!)ѿ_*`hx@_S/:C!)ѿ_ 4"k`h8@p FFF_\S/2C!)ѿ_`he``p@FhBWh?( pG8Fh3+ $$!FXC08cX`C8Fi{+c3##3#SCXCFcXC 0 FFm$*FFo0`G0pGGhhKhhhhDBؿB i̿##*DBȿCiBԿFC\_S/:C!)ѿ_ pG-CFF OqFFtFHQF F,Fs"`q aSC (s"_SC (ѿ_ F𵇰 F:F!mF4F$F(F2, ,,+n+Կ$$ +n+ !0F}d $$0F,F8F FI"0$yD]XB02* 0>0 AtKDi`AAaja DjasF#3+1I Dh3,"zzgzgzzJ41zDzgzgzz)h3Ch+0(( *g ` (zzcA( F0c9( 0, p-C ##FFFhsh"A1#Gj37i1l3sj1D1@" F8F"0F-1 FO#O0 !^FhB "!F+Dh.3F -AF%7F$W?4 ,"F)F@F(ѽ506-  FF"}s`_S/2C!)K_{DfFF1FF@iB 1F F F! F@8v'0TL_S/:C!)ѿ_ '`B0Bs_S/:C!)ѿ_  -OF%FFF*Fy8PPF(O0 0FDY &:F)F FihB`ҼF  2F)F Fb(D!0z:Ezzgzzz 0 @F0   FH FW FwF& "D`r_R1B(ѿ_l@65- FF F5/ FO(F FD FFFF"I(OFO3)F"3F8FF F,F)s`_S/2C!)K_@{Df F-AFFFF"I0F//)F F% F$"1F@FF)F^(F.s_S/2C!)K_@{Df` F-GF(FFFY (N4$7BF)F0FGe#$:FKF)F0FGhѿ_FF]-AFDhF#h+ @  #p`#@"9F@\C K0h`(i`Bh(F_aa"arhh3`-8%F``@ `E```@ @B8-CFEhݱOO ,hgT/T ?<lh(Fv %Ft``_Fز? FF@O1`p?1hF!?,h!iQB -!F*FF ph#iB`Dbh%aD3`ppFh?1F!?+hiQB 4F#"FF phi`DYhaD)`h3``p-ODiX*FT BByS ,S Q@S8,Q@S@,J@OrC+KEуhhhFAFiFU;' 9LBD d"DOZDFFwFFF V;.MVEDe+DO;DFwFЦFF,F{W !N  _EDfDOvDFF,F3F FwWJOErDnrDO"D3F,F FFqFBDfD`F`sD`D`DayZnܼb#11CaK`3C`)Cc`3`KapG#EgpFX\!1\QX?%@pB *F D!\1D1p2F D13D1X13DX1\1\a?- aa@3@1@=1X\Q p*F`a1DQp FFv'1Qfa۹?r"DB@+O`#%1@"!0F+Q1+ 1+ %1 F--Gh 4"AhPKC`U2* C`1C`A`0 "`pP #@3sE3@ D -AFFhc`eh@E'hc`\c`\a`~\a`"{\e`#OCFe` hCh,B`'hB`\ZB`F`]G`]$+DG` `"`#K`Dh"DhB ``hC`oB`F FIF Y\a`G\a`3A\f`]"c`# +`oORPV FIFnFF(`x":FߩB-OF% I ` #JIzDyDJIzDyDK{DK{DK{DK{D K{D K{D Bc+@m+@i )FF@J IzDyD0Fe(FKFB@H03B F1F(F#`(ؒJIzDyDDY\E\3A\]"#+c+ЄJIzDyD$ % B@9 L YF }J~IzDyD XF,@EFycKBHEGPE@QFXF^('pJqIzDyDEeYQ\\P !P  Xaf3\P !#fIFXF('PJPIzDyDEeY \3A\P "#eAFXF(7=J=IzDyDEUY\`dP\dP\dP\ eP\Y3`eR\ez XFn(ٮ!i)Qhx#dx@"fJ J!IzDyDC1SBMARFCNIBDܮ G˩s3UUBFSIDFATSFɧ_?H JIzDyDE!C( FYFR(q BE''/?ȮJIzDyDhJIzDyDiJIzDyD##`MKB@ǁH13BD F1F(F#`(ؽJIzDyDY\E\3A\]"#+c+ЯJIzDyD%B@ L YF JIzDyD{XF@EF ؑKBcsA3ByHE8PEFЊKB@рAFXF@E XF(ВJIzDyDJE@Y \3A\P "##d0,IFXFY(E84QFXF&I(Eu XF(#i+kJlIzDyDjJjIzDyDErXF@&P (dJeIzDyDEuYQ\\P !P aeYQ\\P !P   e  3\P !#e"C(- F FYF( BE&&.?/J/IzDyDt#irbeamOeeBآmBؑBmB \k V##`REVCNIBDARTFʨިOIOPFTTASPOSV7NZӢ[K J  IzDyD6o  F  '|8 FDh F>ihB F8@} S+ "O3h]pG-O FO@)0Fk`FFBS+JEjh2j`nhF(`FF`XF|,`v#O0k`H!XF0! FREX"0KEW"0D1 1hC`K1F&"F F{DPkhBT6+hW) C& W)0Zh*3BFQFKF8F0 F4FG)6 F*  -OFFI(rfhD F+Ff`Ff`O0chS!hZ\b`@K(@H\3c`*j`ch hY\3a`A\c`#aQ\a`2A\b`#+bkb3c`Q\a`2A\b`#+cQ\a`2A\(Fb`#bbkh+ch"h\3c``` \3c`*aja \3c`ach33c`Q\a`2A\b`#c+dQ\a`2A\b`#03 +k[kh;+i(F+bkbbbck3(F$E@chB F)KFBSB( F03@!I F(chD``!hZ 8\b`b`3\ .c`'?OBңhhh()k)!( XF  xCEhDc`^INUVXDIVINIV FQI+I (chG hY\a`a`3A\g`].c`"jd Y\a`a`3A\g`].c`"d Y\a`a`3A\g`].c`"dQ?chD``K `H(Fcf`oAOO E?4OE2j*l"kj "BDBch!_g`g`p3``c` '? `3c`  XDIV-GFChF FF;+d  O 7h;+Q @0 p(Jsi;+Epjh:*:#@3#si;+/jki+-iph;FBFQFP(Ek37h&8FxB +hBF8FS&0h@6 8F K-OFJ}{D FhFXhbhBdЦI F`(اJIzDyD Y\a`W\ a`Q\f`]3 c` #"o# "OzpF JOsOzqzDI"FyD  Fto#hkhBPpI(F(uJvIzDyD Y\i`W\i`Q\n` n`! ]Yi`i`3Q\n`] *k`#OOzpLF(ZJOCOzqSFzDaVI"FyD+O 0F*T(L2F! O0F\(;2F!`X0F(+3F@FF@F+F#  @FHF.0FB(KBЪhkhB(Fg0JIzDyDB#`0\0k(UJIzDyDINUSINUVСћ`1w#st}KO2hc B!0 F3hlk DREh FzqFdFJzD|I"FyDdC0JIzDyDJIzDyDBXJIzDyD(F`b(lгKBLBX#QFX0T0(N0O2d B%050kZk DB(h F`zzPFF(JQFzDI"FyD(F" F1% , hchB F}0ёJIzDyDJIzDyDA*0юJIzDyD JIzDyDBЌJIzDyD @FHF0F/?8F F@FHF0Fz/8Ft Fx@FsHFp0Fd8F`(F.+MZO32FF0#@FPHFM0F@8F<(FB F?@WJXIzDyDV R* "  E@F)HF&0F8F(F FHJHIzDyDUO3:FWFh0E*HF/8F@FHF0F8F(F F@J/J0IzDyD '@ R* @FHF0F8F(F F J!IzDyD ;  INUV/yݗ7hIsSyl@Fx0Flgh&B h#2F!FP& JIzDyD6oh&6B(h#2F)FP&(JIzDyD (FE FDFFF0(F8 F5q&F`%OsIF@FG(OIF@F#hXzh;hC"#hFZP{h3{`+hS +h6C khBb+hO S&0FlchB#Ba"hR#D (9OsIF@F(Op Fp(F F8F@FO0&JOqzDI2F@FyD0F(F F8F(3#FbhB"hR# Jxh9hA zh2z`"hB#`3 F (FO: , p8F$!I3F"FFyD~IKF"FyD@ owJwIzDyD}(Fl ( 0 p*F!F 0OD!FSFCCh + 3hZ"`l+a##"ja? Ah9)"jalrDa 4*O2`B D0OaF B Ah0hS`315h"FB @h4 h,K`23 a0 B @hoh,4hK`:3gz2 a\z0! BM AhD h\S`:3\ gzz1PFhBzh;hC""{h3{`+hzF }Ôߒ#FCdlZ xd(: FiZhE.hO S. kRk+32B8FBҥl!flBU1pB 1E60i-hU PM`al1ad3( g O0-OFhFKhB$ХI0F(ؤJ8IzDyDU< Z\r`r`3\t` ](s`#O@FF(oO  PF!(KB@ՀE ӈJIzDyD8(FoIPFK(KPF(@ɀF,B€P@ )@\2)a`P\!a\2\""bbbP\!!c\2\ F#bbUch+ Y\``P\ a`aR\a3Q\2A\#cO3#dBZch;+逢h:*#@3#s+ۀ#i;+րi+Ҁi+΀#j;+ɀkYŀ@𭀚@XF~#BKE+hC)@  hshB*QF0FF(?JIzDyDFzO4w2h FnPF%F(PFcDJIzDyDE J IzDyDTTASTTAV&A͏ Ӎō1#F@# 3+lh!OB#+hS! ±k^Rk+3O #2DES,`.C,  1 J!IzDyDa8F4O01oJIzDyD8(Fj F#bkD@*N3 L*hXFR# h3G J8 IzDyD(FH F 0+9<033PF #BB,*hPFR# hB(3YJYIzDyD (Fx,B RJRIzDyD@F(Ā;KBвhshBȀ $#AF0F;` (EJFIzDyD (FI8h?J?IzDyD@F9FF ;J d( YF"28YFkhB=+h $ S!0Zh*k O *"Flr0XE1jn&fEZjO  Eh/i/Пi/ ''B)p  6  &'% #l DhR _`RR  ]`cYhOqF \!1EF)Ѿؿ)F`02 (ѣks"l O hShKC!`+#+8#kB%l0 zh hiXzCp9DB 8F9@Q#k} ! liCZB 9FAXphh9D @cck+O O"c2"ch:* 3B"l"Qh9);J0S&P-6kh+3+lZ0"h'*#`0O "hQF*j#"F#`[F"h*j##`OE#h+*l#`6 -OFFFO0E@0S(P-7oh/4O HFDES*F8FBHFȱ  +kz+#*@򇀧 WBWA1hk(lB1`"D##0Bk0S"P-akh+^/hO 8FFES)PFEFQF8F(E  k0*lo OzoO Ox"hD#`bh+lDc`'+k+b"F1FX(z+k+f7OEѺ#hk#`ch*lc`3 a'zCoO~ hD"``h*lDb`0h"D""b*k12hjF"h""`2hjFbh"b`2hbO2"`O3c`Os#(F!Ыj"h##`jbh#c`Ыj"h##`jbh#c`-OFhO Fch h[hE`hS*P-Wnh.T/hO 8FFES)F EF8F(:  0sO+@򖀦  L k*lCC. D#`*)lDa`7 O``w4   O [hEhS*P-Ukh+R.hO0FFES(HFBFIF0F>(9+kk*l+#CC+cD.a(.a5#(FGD DF`#F4Dh3B  O lO3tO1xOpj,F F'wE3DIDaAa2OxG07`S; 3 \F +јFjFXFF` S+ "O3@]pG-OF F$jJjK{DXhgK{D fK{D [hBO hS"00p+#8FF!ES*XFBFYF8F^(]  6*z9F(VEVF2Fs<4D#+U0+m& 4 F00+F  'w(/;F#F / <D_#+U!* wLE8(U00#LE<#+U  ELE<#+U3r @FhB+ !SFXF 7&vXFB0YFB0FFF(L.<#Dk-OFF(O&>F1F4FO /[* ]*.*5@BF F8ර#F&1F+1.,[*)ZBDF{ /-/ FO O<="0?_  r *`0: *4B F FhCh+0 h6 F@.8Fh{%chB#hS%5 h##`#c`8FP 4FP"!앱(FG8F&F ` F0F:F)F FF F@F 'F`E`(FF ` F0F*F9F` F+K+J-O{DFXh (?&F%KDD{DkhB/+h"S&pG-AFFFFPICh+hhBJhzD%hB ұhCFh:FQ%P%x5 iKiBJhzDAF8F ā-A$FFFFB +h4Xh(hE0FA\_S/:C!)ѿ_ pG-O C0;F+F=n(=o+8 , "IHF B(ؗJ8IzDyD,b  P  %0"-8"jCFDF(!b     * " 0 0  0  40 \@ eJ8eIzDyD50F #ZF  Fx%8'B5X>0FHF< H03B x0# F8% E  X0FPF` 0$0M1@"pFK 8% nE  X0F`1[8+4 TB{"#.F+FH12 BP0 `P`O0oFORPD<nnt"!ԾFh#``i #caai#aj#b`k#cc`j#cbn#f  F@ǿ"!-A%F@[ h`i%aea#ai#a j##b`j!kj l#cFc%dled#dl\#d mV##e`n #cf%0"f)FlJ`meee #0%0"P)F2mle0%f۱%8'F0B 0Y(0C5N#00۱%8'F0B 0Y(0C50#0 FAHFFFF@F``ifa*F9F0Fa O0-OF FFF*Eh3$zDyD iBB $zDyD(CoiffM4"hf(2ihf3il`f<S BB H132F)F FO(𳁥+E;h#JIzDyD9i!)M1@" F(c:ih,;il0<S BB H03:F)F F(@lfj(F#3kd(@^#sjj{jj BF(FyF(@Rv#.i3j sk+k@FI(@OpZFhb(Oq Fb(HF*$O  IPF9(πPFbKBc#SB2д (F $F(PFI(@݀J1\!p` F Fd(PFgIU (@JO   J\ . ) O J    1\ .! `"0kjC4kjC( C\FFdIFhjj\#kbb,?KIFhjjN#kbb[O30kco7O44i;j(Fȹ3i;i{(FBFЃJ(IzDyDs#$+`F FoXF/M(V(O4 F POSVTCAVRPXEDNPO5}7jI}j|iy}f-GF F FF$0D8(D`F8`p:FV pF?:F1J*F1F8DF#h ;0O0$ FB 3xC#@4۲@C#@;@-C F!FAFJFFKND qU0KCKJF8F@NDD#BYBE0K3qQ0 T-GFnFFEn_@S/2C!)*_%$+j!(F+ ##jiv(O0w: "QF@Fq(8"V 0QF@F35B`n_@S/:C!)ѿ_  L"%FOiYhB6hS"k+3V#cj#O#kEcjS(0x/[hx/ kE_BИ`Z`Oc2#blBҢlR3V!B33-OFO`F(%ObO1X 0ZhB9hS%0k21l2.Zh 0* O O!aE$iBjkj&Dbj'ZjFCfl&D4DI'`10pE5LXP0ñkQt0I"0k3#xkD3+I"d@hP_@S/2C!)*_fh#j! F+ ##bib(O4Z$K{D ZB _F˅%9F"0F FJ%5-#FO5'F"0F4( W * Rh*jFB d_@S/:C!)F"73/+fЯ O3"Q"(:)7U"2YOЋB d_@S/:C!)^<+d_@S/:C!)ѿ_B% FN 2*_ "+F!F0F"+F0F%YF"0F  S%05-р4Cod_@SO$F(F$QFH0Fp`(:F(F$J<O4(F$_ F%(F$MF`F(F$QF:F(F$D(F$H;F"FAF0F,Fpita(FaO0@1?* d84D4P4@$0pU N #E1B щP% @;@@pFP& @9[B@ @P%  Ap@"!FK JOa#a I\_S/:C!)ѿ_ jpGsFo`_@S/2C!)*_dh#j! F+ ##biZ(O0!nhF#BC"D# 3(o_@S/:C!)ѿ_  hgp-OFFF F4  lF(}+F%FhhXh DOh2O D:0 k8EOFBO P7D  3EWBc((FX`FF(F]@OJ!'@"yCF`@_S/2C!)*_kh +j!+ ##ji(~0F\ !U?3*FO0BBF # ,@!F 0F @ 0SC"BU?DF$04%#.FB@o8F!F]$!FO@ 8F]L0Fl;E A D h I @'I   0  B(FB(F;O0BAb  B?!F8F]!FF8F]D Y Y QD67 ^ D!S1+B8KZFB N<##BF5^"u 8BȀBE X +5&Y"!hP̖@DBSSSS ClC | FCFCF Y"042  @ #BU/ DA# 3$'F0Bbҁ{S0+B8B#" #BDH)@F#lQ\] F8F]#A(PF#D!O0KJ 54J EA\IhB($2C7# OB) *O``Op Bj@8  ]-OF@,"FF(@ 0F%F  v!F0F>Fހ1o Bڀ@Ȁ*@@0F O O (I OJOJ(j`0HURB(HeRBHDBB:  #p P :  p P (  #p " P 3  "p P  # #  z ! " "p 0 "3hYFHF FO0TF!F0FCc_LS/:C!)ѿ_8FCc!F0Fj Cc!F0F0C04,$E,M*F!F0FNZ 4,0F F0+0F\_S/:C!)ѿ_ pG-OF hFF Fi*kSLO|D<4 LO|DLO$|D4OPC:FAFXF1(mBF!F+hO @"QF8Fj$x(@π3i[սP0(7!8Fi5h:T0H:X0h:O@SHo81F@F(ФOѫ:gzz:gzz`a:gzz`:gzz:gzz:gzz:gzzDa-Z`D``:gzz:gzz:gzz૊:gzzD```:agzzO@S0!8Fhx8 O~S`ab$`a bJF1F8F#FxX@F(4\EO0-OFPFFH0FX\HC`H0 hj,+00+"(F;F(PO O Ԣ$/1F(F;F(5#$1F(F;F(!$01F(F;F}`F%x`#? K(F -OF-#F` FF.؀ " /!0/012^i FH_ IhFF` 4(@:F;F:; F(@I #  F  IODp7HOD(OPC2Fp!(F9Fp"?hO@S0!(F8O0b#O~RC`!``aCaaabbb@" 0F(K@!(F#O$KANOs@O#O@C~(F2F3ʪBC CF F,#JFAF FSFxFFFkK Fj J 0F;4N,N-CF-FFOSjF!(0.O0#O OCp0l,O`F  L O3 4S1+ CCCCAF#Or=K(F# #JF9I h H B4I 8CB1I 0CB !O@pO<CJF #(FAF#kBj)F,H!"rE  ScEF2:DBSk@oj D#kb]%cO0@B@B  K{DS pGOK{DpGO(O` `9 (3 (0(*pG(' (+pG(%(%( pG((pG(((( pG.(%(&(pG/(C(pG#`pG#`# `pG8%(K{DD pG pG:O + ((Р#XBXApGFpG pG"(+٠+ ٠+(Р%XBXApG pG0 ((Р"XBXApG pG + ((Р$XBXApG pG-C@M}D,U'iQfiii` ` ` `J0 FFm$*FFo0`G0pGhk hkhh#jj +ѣmm O08! tFx! nF` #"c` SC (ѿ_@F a8h F(F8 F8 0_P?3@2*ѿ_pG K "Fh{Dh!h #JKC ;*ۡhX ;!!h:9!`Y-AFiO5h #o]C =/[۳h\`h[Y+L_S/:C!)ѿ_ h+8"hQ`3""`_S/:C!)ѿ_#h##`h_d3S/:C!)ѿ_#h+Рh_\S/:C!)ѿ_ \? =#0i3`A F_S/:C!)ѿ_b| ih F@FiF Fv"h #>SC f۠h/hDAhB ohhB h*2C`QF`>ch`[c`"h #hSCP+hS`kh`#h3#`.+h_L3S/2C!)ѿ_kh_\3S/2C!)ѿ_r kh_`3S/2C!)ѿ_ kh_d3S/2C!)ѿ_ i chB!hQC^( iO0-AFFر% ' 3hBhAhh FAFX\ F: 5 F-C%O Fi#hB X0"hph-X0"hph$5 iC-C%O Fi#hB X0"hphX0"hph5 iC{pFi %q#"hBhXvՀh_`0Po>@nѿ_X P3 ip@Q-CFiFFO C7h"B$,hKhBkhhB^D`3_S/:C (ѿ_ h# `20ip!O B" `,h2ShBkhhB0X@`3_S9C(ѿ_h#`1C% 'FFi#hB hX1Fh5 i@ʹp"0FFXk@F ph FpFhFHF8 i#FO rEСh h!BU!pB1E#321Q i O0-C#@FF#n(l+blұɱC;R#0%nm0!8F-  OSw(@𜀗1`l(`d!F(OCOa8FYHO CA8FPF(F:ndh`F"#)e(FFe#"!(F#"!(F#"F(F#"!(F(F#"!ncnnHDh *g bnnDCC0lclC"P"lL3dA#e#ceee##fO8C#"O@CABf#bf  !BAcC#BCcfff#g0e0#fl+kl*l;:gbgHFF&$0$pR?@0FF1F FT2"O"T:O ?O"O (/O B :hF"1F Ff 0"1F F[j^ 01F FZj*O 3MSF "1F FG 0"1F Fi?1F#"# F5 jk+ ## C:HC C"1F F#$"1F F@" 0"1F F@# "SF1F6 F3 ۊi_  :Jc !: C3(  E)h+F!e(Fk!+##ekk.kCFF Cw#0C0!(F9!(F3!(F-0?0CC ?C0000+ +##b(F(`b%haih[hB?`ihjjhS"h d8`nsnnDhiC garnnDCC0570 d0!1KX`` F@F|FH!Fh((F FL t28) !ChFhB8F F` %`8O08pFDhfT<.۫h>YPhFDo>D&'i    'hgDh  EHhIi+L)I gooO 2 DDzB;D5ho zCD"iZC"o D9 AC   AC 3 3 B3DO:غк%кI"hD\@"к к5"h[R\"&"h!!S\@ rbJXDR\ !iC h#*FD (  0D*Sعй2й@ Dah @\"88й 5йl1bh OL O # D " CSahOOVO O \ CT9{#KX D\( $hk+[0D)`hZF@Dhh#l@D n#+ZF ZF 6[D +D708F j+Kj $$ DhD +j Dkj DhuD F8pA`Yi)2,"a`bi*6&``Zi* 5% Ea DS[BB[#F,SKBBK p0SB@pp;4) %pѹ  ppG-O3O 2䡀F7hDOhOO; и FF !BK  B>tFAXIZiC%   i     )5-1DH< 4)D B0 $DI)fD8&  IEO`CFB (L Z@tDd] 0dDH51D3D[ED"FgCBM6ZPDP4V H5V-OuL|Dh hd1! O23O 2; W FF&5FBEҩ$B7FTO aQ OaD D  QD@8   @D5451DO)c2O 4 &O 5F]EO O B&IyXAD] 4 qD@75D3D[E%ҟO! BL,YtDd]D1@5 -OFF  8@DOE  +DB Oۿ& D D FE)FPF"F=DD6-OF FF  =I#yD3 + a&F kC#cC BV s  9,$JX\DO,*F9D@D, ,*F9D@D *F9D@D*F9D@D  DDKF"ZE6 F D -OF8ŰFF {D\O#P&&D @ ;F B#Q# R# QRS +-#hchhh#iST #&D0 &3#' 3#OcPSQ3# R3# #. X# X&(3#  R-8RO :8U FF= 8VN9 ST0R>S F>?#@ANC TQ#S>>? F@ARBCN T:EػQ/6Q&S8 FU<=KD8V9: N T0Q>S F?[B>#@ANC T#>?>@ FAQSC]NB TEUKDUV[DVQQRRQ# R# QRU#gVcgggQ0R0C3@4FX5O)(-X   .XX/ + * 0 2 31  3U,SCV3! 46#FZE+ZC7")zC%r5!$#57;D@O+-%$D(PS4X/\.D ]C"D0**# +D*D BFN  F DD+D*D BFN  F +D*D BFN  FODPD +DD F7N BF#4D+#"D)"%D6%$D$JP" RE2O"&RE312 D,! D!@X#N+?Ǯ +îPRF SXVU[F++@ F$(O OO %O)F X   X FP)FFXSC 6V U SC7R#!!BMOk'%1DYC9FPKKX\D ZC%FD "2F DDD 5N  FD D  #S?>@ FAQBRCN T++@ Fg(%O' *3F X  O3X P *;FX   8VU  SC 9UEHO[%DYCIFP۱S0KX\D @%D BF DDD 5DDN  F  #>@ARCQ#>?BR@ACN>S F TE-OFjm2F I * O [ O KFBй 20`j0DF0_ m[ #i;B;#### #l#n3##j)mO^O#mbjBm kB %n`kB enkBѥnk(EBEA%mABAA F !!o`o .0~O ooD 9 O O !oaooo ձbFAF8F  z * +ѹp49F@F d@(*ع'A* B*+W[Fp9F@FM+K[Fp9F@FA,+?[Fp9F@F5 Fz(? FZ(/F JFQF FF! F   ;Fe FDFR-OFjm*H*Oѳ@ Bи(ۀ0`j 0D0F0#hchF mOh#i3B ;BO O O h #lO "3n O O j'm[ # maj Bm!kB nakB `nkBѥnkhEBEA%m_B_ANBNA'!o`o b.b9FN!oo)D'!! o`ooo 屻  $cFBF  FF YF F   +Fh .1F) ) pG# ! #` # ! ## " #`#`pG) ) pG#"``#B` #`C``#`C``#`pG-OFFF!"hFF"!(FlFzAFhF(FAF "O +OOB*7#U#  ;T#I   H#3+20< < < N< -CF!FFhF"F*"!8FlF$AFhF]AF8Fu OE%HEFAFJF0F(` F-O߰LFiDF( i(@iC h(@iXF(F@"!3O3C"C8:;<=>EFGIJNOPQRUXZY[\].g3F@/F4A5K6L 7M 8& F9F lxDQ @P 8#((:NFB>t&6&$VZJRb Q BC8BCR `E@Q "Q Q Q Q Q Q Q Q!Q ?Q MQ&IQ 3Q /Q Q 9Q|z573oQ Q Q,P$"` \Q Q Q 0LQ F R E0(= (:3;4>5 @6 A7 E 8F 9=GJIKLMNUOPQRiCgFh#>`C #(e+@Yh#`\NOYC8XIBO3PQR. ѪK@FY0hG(#N$ x 9F(%(׀3ZhBʀ4_BhBÀ5YЂhB6ZhB7_iB8YBiB9ZЂiB:_iB@;YjB@YjB}?kBx@ZBkBrA_ЂkBlEYЂlBfFZlB`G_mBZIYЂmBTJZmCNK_nBHLYBnBBMZЂnBWDBHJPNLW "86$@W*T+h9)W<+W\5 haE haEW!FC !!7)о%-*ѹ*ѹ*ѹ!FC3F5FF"hCBCB!FC FsFPF>F &'G`AFcFH!F0F !FC#<sa#P!F0FC!F8F(FpF F p*Ji#Kc:Jaj)aaci+F FG1FF F(FpF FFұFF !F((F"F1FF(!F8F(F(F\F(#F")F0F -A FFFFF(J(E(FAFF(=C  F(58F(/CBC(B!+hjCBCBѫihkh[h++CCC8#`C -OFK FF{DC8)F-F)F5(-<*F FSF$'F*FHFGFF*FXFJF CB)GE,h&)FC O [/ѸFF$0 ջ)FC~hCBlh$3k+ )FC(F F j+hB)FC*F1F@F(*F1F8F(F,jhB`hB@hE@+\`hB h+0"F)FhBhCB(F#a hO hZF,h+Fh chBѣhE "F)FCY(k"F)FCZ(a$00yh,t@hmoFPF.(FV)FC<4! F(CBl`CB,`CE@hBF9F0Fa+F(6hBѳh[E(FthO JF1F,+Fh chB"F)FCY5hE"F)FCZ,hCBhh#ak`hBsi3sa#`bw`chB;n3;f#g`{fKXhG0 xgch0lBzglBȿ{gУhE`03`0#d0..HF,ChBCB hChKhhF F@ =8Ch;C`@&OtKB{D1JJhXBJX hB  O0CBCB FC O0F  ,!n0h#h@9 -OF@OFFFFDF(hEjF(cCh+030((Vch#/KXhG `.K2F! hXhGcjF8w1FC@#$K FhXjhG( F( K hXhGPFP FK hXhGMcj#Ccb#0#0F%1FC@(FLKJpF{DF%XhhG1F Fkbb%cedd6c 0#0. Fp@$cj#cbp@-GF7LFFF?|DF$],/KO XhGFO +K:F1F@FXhG(F1F@FF(F!F(9FC#@@0`C8V$ 4BO@FF(FBF1FH(FF@!(Fc9FC Fn-CFFFBj 9F0F9FF0FBh*FF1FmF`k0FcjCcbѸ-! F-AZ(jnF(eЀh(N'1F F,Fchӱh!FFCEchhZh h3#FF@F?`h2g`#hӱh!FFC(#hhZh h3#FF@F" h'`aih F1FhF Fx FY!Fp!(F! F-AFF !FFFxFO@PCF:F1F(FPF  F-AFF !FFFFO@P:F1F(FCF_F  F-AFF !FFFxFO@PCF:F1F(FF  F8! FXj)FFO@Pa O@T F8pFF !FpFO@PK"F1F(FKF L|D FpK! FXFO@P. FF  F! vFXFO@P FF { F8!F `F`FO@P!F(FF d F8sFF !HFxFO@P#F1F(FF I FpFF !F+FpFO@P#F:F1F(FF - FpFF !FhFO@P"F1F(FF  FpFF !FFpFO@P#F:F1F(F:F  FFF !FFpFO@P#F:F1F(FF  F8!F F`FO@Pf!F(FF  F8! F`FO@PP FF C8 F-AFF !FFFxFO@P3CF:F1F(FF  FpFF !sFhFO@P"F1F(FF v Fp-AFF !FFWFxFO@PCF:F1F(FF X F-CFF !FF7FFO@P:F1F(FFKF:F1F(FF:F1F(F * F! FXFO@P FF  F8!F FFO@P#F")FOpF  F8! FXFO@P~ FF  FFF !FFFO@Pf#F:F1F(FF  F8!F FFO@PI!F(FF  F8-AFF !FFFFO@P*#:FCF1F(FF  FFF !FgFpFO@P #F:F1F(FDF i F-AFF !FFJFFO@P:F1F(FCF^F I F-AFF !FF(FFO@P#:FCF1F(FMF ' FpFF ! FhFO@P"F1F(FF  Fp-AFF !FFFFO@P#:FCF1F(FF  F-CF F !FFFرFO@Pn*F)F0FGFKFBF)F0FsF'*F)F0Ff  F8!F F`FO@PF!F(FXF  F8F  F8!F F`FO@P"!F(FF  F8-AFF !FFdFFO@P#:F 1F(FCFF a FpFF !CFhFO@P"F1F(FF F FpFF !F)FpFO@P#F:F1F(FF + FpFF !FhFO@P"F1F(FF  Fp-AFF !FFFxFO@PCF:F1F(FF  FFF !FFxFO@Px#F:F1F(F @ֿ-AFF !FFFxFO@P[CF:F1F(F4F  FFF !FFFO@P={#F:F1F(F9F|  F-AFF !FFyFFO@P#:FCF1F(FF x F-AFF !FFWFFO@P#:FCF1F(F|F V FK{Dhk@pGJKzDh{DkJXhGk#c P KhF# kjD#c#b<s$]M}D+h+h !Fl+h`WK{Dhh8VN)Ff~DF`h h3haih F3h)FhNFGM!F}D+hh?+h`DL|D#hh`#hh#hh #h"`/< FAFhI FB}0YjGi8 FFh+`p FAFj0#`iZCXhhChB:F1Fq p-CF F- -### CF(FBF(m-#0_! skùn+Ou%!snrk+@#ȿ#Zn*Oe%Ou@Oerk En E rn**CC7EEE@Ee@O&JF! F3F"! F`. F0F+F2F! FcoC0cg+F:F! Fu F-A#hFFF(Fhh+#!F(F_(F%Wci`3iL_0'F#kBciYL_S/:C!)ѿ_ ciC5S/:C!)ѿ_ #a jL_S/:C!)ѿ_ ##bKpFJ F{DFXhG, hCB )F0FCXBXAp p FpTFOKDXhGlh>fhrh0#~+ KoXgi'ihh h3hjGqhh hhFh (F@-CFF F"AFhF(M!:F Fa_\3S/2C!)ѿ_h@!jiB#I"jcjyDC29F"jcjBF#j3#bh#d I(,F8FhA$i_LS/:C!)ѿ_  F -OFhFFOKD FXhGF&jM}D+hKK!JXzDh#+`$M}D+hKK!JXzDh|#+`0+L fF(OXFVha(F0ZF0#k`[h[o`#a#U/E1)ѿ_o+ԠkhXh(!F+~HFC+v+~jB+v%K FXhGhF(@h1#0+pHhQF0cbLh F0C@0bj0 ij0#aihZCXQFshFiQFhisS/C)ѿ_ CB#i F7ѱ)~ FOF FFh_U?3E1)ѿ_QFU` FJQF Fd(Fol+9;+6iK FXhGb/FO FFh\XFRPF](FHF!FJSЊh0jOG C_B PAU=-%%%&7F F0jG0+0 + A F 8EѱE0 F[00[0 0jG(p`-S0 S00+0+ -CFNFFF ~DF@ (# IF@F (F(+l+;+ K(hXhGCB C T<4 p* nF# FfF: fIn)!f#ni)F F Fi1F F(Fp pF FF FFб!F((F"F1FFp!F8F((FeX!FC F(FF#F")F0F -C FF#FF)FGF )FM( F*FIFlF()F@FL(2F9F F*(ҀCB)CBCB@0m)FC  C\B Bh+@`CB CB)FC # 0ng)FC w+@#oi1 CBCB#iԘL_S/:C!)ѿ_ #a% CB CBol+0n!F(FH)FC-#C F@C`B0#0! "kB*bi"3PbCBCB0n )FC )FC #+ `)FC#8 FF! FбhñCYBCZB фhDhhIF F8@!FC 8-OF FFFx9FDF(9F$(@!F:FPFBF(:FC (Fq(@@F9F(F@AS;+ cnkhK FY0hGFsCB;CBȀCWBC(BuCVBtOCXB𖀶B_ECBs CBCB5CBLNCB@,0yCBȀCBS CBHCB@0bCBCBuCB CBCBCBC=BŀCB@怬020/0hh0++0000hShB0++00h+@0+`h+@0h+@0h+@0h+@00n0h0h9F F(с0n9FCv0h0i9F F(j0n0[i0n0i0n0j0n0[j0n0j0n0j0n0iv9FCYBEK)F FY0hG(j0!bi#[j+`#19FC #1F9FCO@F$pGpG$pG$pG$ _R9B(ѿ_FpGJIzDRXFhG$hh3#0pG-OFؔFFOqOR F@D^F()FC/C C CC C\C`` ]CCO1 C!fq ""f"c QA#+ѿ_l  FF Fhr" o@ :*ػ JY hG `("fJ!hY hGF)FC % hM()FC/+CC\ VBCWB` C8BЀCVBeпCXB𣀱B_gжCB! CBCB ЧCB&CBVBQ9)CV BQ 9)CBl@΀V BQ 9)uCBlI@v/gV_)FC ag/XV_\V XEX\FC]BC^B> )@V XE<\*C_B&0\V)$V) F#XV BQ9)! )FC/)F F !!6)?&`F(F)FC/P/dK"FY0#GF(^)FC )F FVXF/iC\ BUъBU)FC ##c)F FFP)F F8)FC0F/O#00n F%f Fo=K&```Y0 hGӹ#/KY0hG B0++0|00FaH)FCt)F F #cb0n0&F"kB~`i3OyD`iDA``iP`iDQbޔx-G FࠀFFF DF _ ( AF FF( (F( + +l+&K8FZ0hGF+l+;+ K(hZ0hGn C (K2F9F(hZ0hG"F C )F3F &F(AF-FH(f(F 4 C FD-C FFFFFF 9)F"(*F9F F4F()F@F!(Fn#)FC AF(F3FF(9FFH0f)F0F)FCy F-O FFFF)FDF)F(.*FIF FF8)F0F(!+ 3l+2K8FX0hGF3l+;+,K0hX0hGl0)FC 1 @%K8FX0hG)FC 8F()FCKRF9F0hX0h#G(#1F"(FSFMF(MF(IF0FOFH)F4f0FV)FC F\X$!hh` ]F!hYj0#aihZCX!!#hFsFChhñh%!FFC ;#FF0F`h#c`a#hh !FFC(#FF0F h##`a#j3D `waih Fx pF F@hCBCBh@hA `pG!C8 `pGFpGrF($! F(|C%`O@Sa`E`` `aaaS/CQ)ѿ_ "FaihFSaih)izF-@khhy)FFCkhhZh hC(#FF8Fhh#k`+h۱hY)FFC+hhZh hC(#FF8F(h(F"FaihSF% F J!F(FzDi( FpF F]F(.YF(F Fp JFHJ!FzD@ F@ G pGFj!Ij!D k!?`k!:#bb#cccFbb cj`c#j#k F  F FFpF(O.OJ%Ah)i>.< 'O4h%C_,kHCO$jCOрj C_8mC@_ @kX$A)i@] "!""""!"-AF FFFO=/-H$Ah)i)=-( h(k (j(Єj4m(Dk F)Fq(ЇB)F F@F"!"@@-AFFFF$1FjDDE#F X1FCCG$04jjFFsFFhF j)F"(jB@@)FjIp"_@P"W@@"!N@P"F@@P-CFFFBF$PD&Ah)imF9 &(Ffx`!1F(F8>k1F(Fj1F(FVȹj (FP`1F(FX~k0F#*FFF0FdF F"!"@@"@P"@@"!~@P"v@@PF FF(2c+/ .h(Fk (Fjm(FEk(F9F9F;()F F)F F FR@  #Fȱ@k@`k1FFm(F1F`k9FF`k8 FF )FC F8DjC$ FCjCx  8FF )FCi F8Fn+C !FZ FsCk+C!FK 8 FgF )FC > F8F^i+C !F0  FF(FF& F FFF"2"!0F"1F8F i$FB "1F(F(i$FF FpFF!"F")F0FiB ")F F ip@|p#`#aCaaaC8CbCbCbCc#dpGim@ 8FidFia 8] F8FiiH F@p FhCFKB{DCp#B @hXJ!FXhG#c`@h{ j>-O3cb F F(FO&j F#b.0Fa0F FF(Fp8,! F H!`aFaPO3cbFa8iR FP(F8 F8FFWm)F FPhBChB)F F#0 -OFFFF8)F@hF(CB CB-CBCByCBVCp#BGCBm#)FC jCF"F9FKIF*F8FwF(]ЃkIF*F8FkF(QЃk IF*F8F_F(EЃkъhCB7C 6#F2FPFP/,CF:F9F! /#F2F9F F``F@F F)FCu0FC )Fn -O` FFFFAF X, F(!FH"ii! FZlkCO, O O _B_APF O3!`&# j iF"F[j ` RF(bXC8`(FHmF!F(Fm FpFFFF^ p)F0F(ЂhBO)FC Da!FJ pCi+ -CFlFFF9N+ ~D;+6KXhG4K(FXhG02KIF(FXhG09FC L)F@F(C*FIF@Fp(9FClC8CS,BЂB38F(9FCKFE`*FXhG b8! F9FC#i#a(F KXhGbi F }$D-AFFFC%CC8S BЈB РB S\ C 3(F( C @+FBF1F8F*@_F ! Fx (F FF" FD,D K F{D` 8FD (F((F!D 8 8#`FS`#`a"h#ahLF(#0-A FFFFFxFر1F((F2FAFFx1F F( 0n1FC$20h,\`"0CC`C89hBЁBzhqE * J` 2`1FC70$` FF0*OhD%CGh.Aol+;+ؠh: K!F oXRhhhG(-ѠhH"FlFCdbi"j0!#jK(FXg+e0"F[h+J!*! .mo!(FG F%F(Fr-AF0Nh~D+/Ѐh"FciF#j0!3jJ!(FXgje:FTo!(FG8F K!FoXhhG0"` 4rPTFFFFuF!F}(0F"F9FF(F!F}(F 0!F h+C%0F0"`(Fp%&kB)k3n!Ձhh Di!D\h,ќh,h,\i ,ќh, h,\i,)Ai )5pi)i) )Ai)сi)i)BrfhpGF8C ##`$HxDpG𵋰FFF!" FR"FI(F(  "! FDO"3`"F I(F( $T`I(F F d-d d@𵅰FFF! " F"FI0F +` .d l? 𵉰FFF! "(F*F I0F#S`#`I0Fv<T`0FIn .d d d@ F!jFI\ F d@7 Fۉ*FIBM(FD@  F0d7 FBFI0@O2!F(FO00 d0 FO# IF@O2!F(FO00-d -GF FF! "hFF^/ ",ݹݺ.?4$?jF I8FC(3` +` d 0FFB I "!F#jC0dFFKJ{DXhGmh8FFFHh F F8s# MF` K}D`FXhGKF"F hXF0Fpm0pFFBF8F0F`(! F(Fj0#hi!SC*FXl!F(F; F2  F-O0pFHh+d F@Es FKhN~~D%` ` K"F@mXF( Fp@{plFi+Oo۱p"SC (ѿ_i_LS/:C!)ѿ_ 1۱s"SC (ѿ_i_LS/:C!)ѿ_ i_LS/:C!)ѿ_ #a-CFi F-F0`0F}0CC(F [YBPYA00B[i [ h+h OBO2*Fj(a O0 70%jFBikCX+4jF!he!ihj!cihUC]YV)*Fhs"SC (ѿ_i_L3S/2C!)ѿ_0(K)J-A {D'NX~DhF(2hb#H!xD&K*FI#0# 0F*iKB kiQ?ѫiF?#3`O4@F F O0(;hB  QERVv@@Pj^5K6J-CtM{DF!FX+hl4N($K#ipC_IF@FIFF@FR$K"! F{DOc I FyDF(pD2FOa F긱"AF F(I"8FyD F!FB8F$F0F|l$ F+hB& tMjԌ1S\_S/:C!)ѿ_ pGpFF p" FF("F1F pF(F")FE(F Fp8 M}D+h  8! PF(`H, `(hh,,` F8hK{Dh[h!LL|D h##`0 pGJzDHAIhPXXBXApG pGbh, pGFK1h{DOh)DhiF<! F#5FC`UL;`)FXhKX`(I"(FyD K"F1h{Dhh F> ch 3c`ԑ,h|-A#hFF=1FjDF$n[emM((( %%hce1FjFn%c#fCQbpG8FKM{Dh}D,hi!F1Ch;C`K!F{DhhKO2X`8ʐ&gpG pGjk3B4F pG-OF( (! %"Fh*&h0"#kB ai X 5%B F shB hB8O  O0 OF F"kE' biPYL_R9B+ѿ_ +pbiWQbi*DbbiDob   %O O #kBT3i uF(0XFp0CO$0JBJAC_0yByA[iBF ([ ,0sh$0h000!HF l0#bikCP F0FbРh!hRhUj0#aihZCX!F#oi FbjʊpS/CQ)ѿ_ CB#i F CBѺ F!FM`i+#i FC0 F FIFhyD-G#h%FOFcPDBeu#"cCcF@F`(e FO0\ ktF`a FPAF2F#kB`iP`iDD``iDa6Ba`iD``iDb`iDZbKXh0#iC#a0n! W!F0`i FWR h F 0pPF;0CCp P$N0 ZQBQA Ri [ @ѭ`#0pgOC:F8FCF)FFp L_S/2C!)ѿ_ `F #" # #` ( ѭ000")F[n+OC CFFgFL_SO#hF#bh`!kiChi3hG(O@Tx>#hF##C F 0-CFFFF (?ЩBUi1=-2 K{D]]%kCEO`m9Fh"FGCFX)F:FhGiC8cCib(  C C CO@PO0C tsF F !F.CB h`!h Fik:3)FnG psF F !F CB h`!h Fik3)F[hG psF F~F\ F(h$i, Fk[m(FG, k R0(FGp pG7KJ*{DO5N`$4M5OY)ah2NYb1NYVb1NYb0NYb0NYc]Y/NUcY.Md.OY`.OYf-OYWd-OYcYc]Ya*M]Yf*J*MXb`*JX )J]YX(JX(NYFa'NYe'JFedXed "J@XBg!JX JXP JX0 OPh<`H 80D4p( pG:`!KJ{DjXXBXApGtNhpFH!xDZF0"!F0FFP0[ "!F0FF F  F%%F(FpqF! HxD(``chc! F 0C0H!xD`rh[! F(0C0 F( H!xD`0 F|0  vqXqqFh##``h#c`h#`h#`$! 찱"SC.C_C`C8`#`aabChFB BhCBiXCc`ci+#a_S/:C!)ѿ_hCB i/ j F@FFFFF(CBCBQ$"hC8BKF(u a FrrC`<(F{B $"hC8B-(FCh)FC TdF(L(F@_C)F& tF(70FC b`C`$3)FC-'`9F FwPhCB i_S/:C!)ѿ_rhCB i jN F)FC p FFFF; p"F1F(FF(h F p FFFF(G F1FvF(?C (F{(F6CBCB!CB%h hCBCBch j!CC(FF``(` hCBѣh+`Co&0F FFFFF F2F9F"FhCB1FC ChBХCS2;+1FC F CBici+ ie` -A FFFg(ƀ(FAFF(hCBCB@@hj(!%CC(FFh`CB `C4@V RC_X?3H2*ѿ_ >hCB(CBFz?(is/z Ozr#0F9FLF F"#(i`C*(i]{? %J#BB #J#0F9FL^FO1!(j(Ck`CC _X?;H2*ѿ_shCB(i(j(F FC ] ?B@BFF !FFpFO@PC#F:F1F(FF FpFF !FhFO@P)"F1F(FHF FpFF !FkFxFO@P #1F(F#:F-AFF !FFMFxFO@PCF:F1F(F(F N FFF !F/FpFO@P#F:F1F(F`F 1 Fp F*Fp@!FC p-AFF !FFFxFO@PCF:F1F(FF F-AFF !FFFxFO@PCF:F1F(FF FWuyz)(0,((!F %FaF `8#`#be``aeb FB0F F#bAaapGFh`pGFHh+im a i Fhch h3c`@Fhch;c`3h+ F@ h@-OFhGiFj hs hj F@FnYFPFG0F%(FOFhK#`ch F@ h@BHbpUBhD;DB i<D,@4D^iB[lD; pFp FTD?BlќB# \`lLl`$dLd FTL?B mќB ;4Amm9Aee\`l m`$ edj$ D+ih% B(FiKdZhd\`l`Cmm3CeKiDeo+o+ #KeLdj eb m`Kp&{DhK{DhFhDDB CllZ`lBl`dFdD-hK"{DZ`hp@dm:g&mK{Dh@mpGpGBi@*F$I#!a@Bтm% B###b F*b0# BaAi00000000#iaai000Ci D000Aii D#a* ڣo+1o+ !ggo+'Уo+!ggCiDCa#iD#acica0D Ci0ci0Bi og ogz Fw o8FM}D(hkh F?+ KD{DZhcdY`khd`3k`K{Dh8@нkekFh%hDDBcl FlZ`lbl`ded&h FhZ`hh```D6h8%Fh%0$ 3B h i5 h8@-CFF FBFFJF1FmIBF!FmDh FhZ`hh```m0F(F8L|D hPbh-F K:b`{DhhDXhH``!Y``K{Dh9(F8jXd\j-CeM$}D(`cL|Dkh+PchDDdb`d`kh3k`O5oF(@`(h+@ F( !Fh+\! F(cF `0 FX0FTj3hHhc`#$0sh%P`=(CBO HFZF`HFV aH8F.#@F`#a'"caaa#bBhA2hDI`!iA22!i D[`h}Fxh i h F0FK0F{D`o&%F oO4K{Dha(F:jdhh-OF 4(j* {Dh)?1!?@-)F IIJ$@*8@"yFѺ_ غ_@_к?ѵ_@F(ȁx"!T##z#b*D{B@ #FF0FM##cb}DahcJhzD`h`` `+ibiD+aki3kaM Frh_C@%0B0h J%S;O E2h R BBhB Bh*:F)FuF2i R BBhB BhZ:F)FaF(bi!Fmr>   0h9 mˀD  9 9OIOI F( x"!#FJFIFhY(#F#beY i`ah`!i{BJ:D@ ci[F(x"!z?+O I?+vMFFx"!hm FX ai"i D "j  h`J`ZBYF XF Q` `"  -B(F>YFX-BТm(Fe"i*a"j`*bh``h `JF!Fwh'h(FQ`hh```:FYF FC )Fm F<D  ; F4m!F0h)V#a#c c3m33ejbiDjbBb0h#i! F#`#j+##biN@H"SC (ѿ_S/C)ѿ_``\"SC (`"_SC (h_$ F hga-GF F@+ 8@#FFx"!pszDqB2D#F @@F F F3 ca'2NO 'c~Dma8F6 mhh9!h! F@mFF#mh F&#h+F F@YDFm\h F#h+F F@EDmKh[i i[i@iBDBDpGFpG-AFFFO03/1еmsihh DBF Obhi~F(CiFriDsahhl`!h FF F)a#h#F FD8` o-GFFFF(MF(Bx"!%##b Fga%cX<3F:FIF F F %#iH@S/CQ)\_S/CQ)`_S/C)ѿ_h F OF aF(+ОBF(x"9Fz#!#b(F!c.*F@A(F&(F(#"ceca\SC (@'_S/Cq)ѿ_ Fm}F0m F"i F2D"a@h+`S/CQ) F_ j+рmpGO0pG FhFoh0l0F FhhF)FhFDFhF(F08F FI-!F(FF(F( F88F F FhhCB#F` F F8@ 8pF&(FFLh9`!F(FF(Fp@pF(1 F@ݽ LRB@BLbB( oopFF OqVFh#a(#1(0(F Fp-AOqF <Fp#`khC`ia a0FF2FAFq1((1hh)F F> F(8FuH98FK{DhhL|D#hXhw#h"Z`hK{DhXhjL|D h0##`0F m#h`0F hJVUUUtU8L|D#hk F"hh;`۹Ph6#hhk h h0<#hhL|D h##`(F8@l84UT@h@hȺK_{D3S0C*ѿ_pGTK_{D3S0C*ѿ_pGTK{DhherTK{DhhnbTK{DhhnRTKF{Dh@TK{Dh1.T7Fh_@S/2C!)*_hh+)j J(F K)Fji!(ѣii b `c`0FAhi[ihYh`bFh_@S/:C!)ѿ_ ##b#`Fj F@F@j h#`8FEmx0] F(F8@-Fj hh Fi`#cbciac`@d8OcCaF@"OQa#aI % ii``ebc`8 FI Fv(F8o8pOqF `F(Fȹ,p#e#0Ffe#`x (Ft(F{ F$ Fp8Fh+!%x0a ,nDf`n%g#cfnl#f#e#fcg8Fh(јnfpGpGh+efpGFHh+Cn`f`nh+epGmpG8F F9 h+n%f88Fh#*+%,4(F(F F F8@8Fh+ F F@-A#mF FdnCff##m#`5#F!n`mGm 0F-и@F ,n#f# F#gA.8F0FhhFj,0`khF`o#m08`o0 ###`)F F0 FO8@8 F@oPiF( F F*p@"iFCi 1DB8FIFFȱah&h+F# FCpC F#)Fh F` hppx0g8F%F!FP)F F"8@h-OFFFFF-8F&F\h )(6 FF F8F-O0F XF(0E$04@F.F8F` PC0# 0 pGFH#hF-AFHi &O@p`iSO` h@h&a` hh=M+hhhG(FEF/H(FFh# h``i$`i#`hm`i`i#K!#JF{D X+h.FFhJkFazDQhhzp `бF`aIkF"F yD-x`i%`iea h%` F$B F3hBоbF$GF h#`i#` F@FF !FF`F` hh+ h(Foh`#i`%a`i`i h| O0#`C``pGp90T/Q?:+B(FFB#`p#`C``O3`pG F F h`KhC`h`O3`pGpGF F@P!0032B8FF@!008 !F 6F0O3`C`0 F8F80 F@0aapGD$ݲm_mF%%BU4- FP( o -OJN# v~D9F=(}@I"F#FF>KFXk+eѢhO #iPFTYF"ih2#JDA1 _Q0 P@ O?@HOO E3"ih#hBDo"iDkhBDhg"i#hh2D^#i0DhFD#&3 +&i0D a@5oʚ;!𵍰(NF(K~DX+h &K{D h3SsEF"F! J# KzDXF(I8FyD@FJOQ zDkF( F@7 F FK"{D`0Fo +hBн \D WJ K J{D LX|DF#h+##`IK{DhpGI0PK,{D M[Yc"bccZc0Jt K? J{DX FkCxKJ{DXFV-GFhoFvi*j+ja+b(hjki+ BB&<.8&F8 B0#hbhZ` `i( "ihj#iBoo(k.!kc`cch`hhLF\(k 0FFhBchBCh&h'B#hbhZ` `g`h'`t F4Fp6h"i-r]KJ-O{DO6FOzXF%Ph"P)h#0 0Ch+ ++(!(ր'#W/G1)ѿ_-OPDFci W?GR*ѿ_afaO:"0+yOW!:F(F:F)F`i2 *:F!XFC}jZFAF(FGh#"SC (ѿ_faa*FYF`i(@#"SC (2'#W/G1)(F_faBFaAFj@FG8W?G*ѿ_ FOz% #W/G1)ѿ_faa0ci+#'#W/G1)ѿ_M(F~ F("faaFjFG@#W/G1)ѿ_Oz% FdchRF!( #"SC (ѿ_ "9FhJ(bh2*FC-FjGCF F9(F. )hBнL+ -OFFF(@`K{Dh+@@! F( c(𛀩FF84ccE$! F8F\ AF `@8FR0FO5sk  w`2`cV`a#b$cbbO3caabA `(O (FF"!V*3Bb!0h"(+FE&#D@V/F1)"K_!I"FHF{DyDcX#0V/F1)ѿ_ch+!sht ip ho8F ko F`O5Fo(F@ETD:>QOD&`jc`bch`(h9<` o CFK{Dhkhӱ/F&W bh#hZ` `f`'`+jc`,bch`(h(F0FofB"!F FBb!@L|D( !HbO30L|D`o(!8`oRO3cgAA-GFF#&A:5FBOCz @Fڽ<h +VE68F F%D&O0FKFJ-G{DFFX;hxh3 @L"F|D o8(`gg(`$$b03^!6N"F>(~DBj"x註-JkF$zDhQh zp 0  04 "@0 iF0PFi(00$:}N!~DpopoO3sg+` F;hBн|2AA:l@(@# O4 F8n")LO3!|Dx#gcgz4n0&#J#$.877M}D,ẖ#A="h>! h`h*h( i$ F"#+`0>rHxDpG7 h`KhC`h`h`pGKJ0{D FFX#e#(F$f CXBXA F 0HKJsF{D%FxX#$#0@4\PC]00k@.!0F opKBKB h`0S`pG 8 F KB hh8@ KB hinhohh(F8@8  K0 L{DYhFE#E0( K J{DXhF###]KO2 {D`pG\58\" FFL1L0S BB S BB qS BB rqS BB rqS BB rqS BB 11111185K)-pCF3JF{D(X##O dCd1C1j+1C1Cjp+P 0PKBK h{D`pGh1#1hٸ 2 h`1S`pG0L M|DdYhFEE01pGKJp{D$FFX# #h hF O3 Fk`. !0F p K J{DX##ChhFC( o]2 hњiiFGpG KJ{DX##hhiCiiihF ]  .0 O4 KhF J{DX##} F F K L{DY$hFg+hgd +` F ^  K J0{D$ FXhF##V+` F0  K J{DXhF###2] ~ƹ K J${DX 0JHh#h4q F F]H#hF2%K7!%J{DX"F6 Fpa0)F <F8Fh(F.F8(F8 i FO00D KJ{DX F h8i@ -CF.LFF,K|DX##EmF%Hb(F[07$KX 0FR ! |F0i\!F FiW8(1F8Ff H+ F H $ F11J 8FKJ{DX i 8xhB F (F%YFi-(8 8@ K JpF{DXh F` Fp@ a`@@a@A`A@pGPh`', r@T(R(r ""@'+, r@T(R(r ""+p RPp  pG`*-İr@a Tck{FaTHPjvteLrAt@dATck{FaTH\`MjtemJDAt@dATck{FaTHmjv`k{tecJDAt@dATck{FaTHk{v`k {tecJDAt@dATc k"{FaTHk {v`tE k{Fav`fATc$k&{FaTH k{vteN~x|hazVCZD(K*[LAVhXt@vP dAR@TcT`,k.{FaTHteJAt@dATcF0k2{THtJrAt@dATc4k6{FaTHteHrAt@dATcF8k:{THt@rAt@dATc{FaTHteBrAt@dATcF@kB{THtDrAt@dATHaHԁTHteFrAt@dATcFaTHVtENr!b!PJR+;+;B!mJ,r+;B!@,r+;K[B!K [,r +";B! K[,r$+&;B!(K*[DAlr!b!,K.[DAb!0K2[DAb!4K6[ڡ8K:[b!Db<+>;B@+B;nBҡljhafp@ DpGpF-iFF+B&`@++B&@+F1*1bb!ȅM*,1 R  HpiF(F D , 00 RC  HpiF(F    00 `ߪ ppMK){DLJLJXN`Wc `!a1b sjkEX8eEXhﶁ@W[yEX7eyEXgq[[iEX6eEXia[dQb 2l!Bm1a`GjkDHDHi1@Gh﹁KDHDHiﺑKgqKDHDHiﺑKfa87u6e@߇{kpG`A0   pGa@pG` A0  pG` A0  pG @pG`(bAc2UAAWA[0a410A  0  pG 0 aG0;A4aA3a`!a1@(pGb`(oc)вoвNn3^8DAA4E1AG7AAA1 A1AA0A1A!2ADA14EAKE!Fa2k a0A 0  0  0 pGba'on[K -вoв~:DC5020%45B04a9>DCC!5P00$4Tb1A"DCA12 0044$AaDC2005P45A04a`AcQ@HpGb`.o1EB1B!0вo вA+KA7K+A'K; AG+ ;a0A 0  0  0 pG0^lF kFPba0 B,b(2H,db(2(b Dbom'вo в"@+2+!@;3;@@2+@+ @;3@+2a!`1@( 0`o1%0A' A+a0  pGo a'0220a!`1@(pG0` FmFMhFHmD     00aFlFM    hF dE0pb`o FAвoвp1 F F1F)F0F(F1 Fp@bpoFlFaMвoвhF (F)F(F)F FdFp-CF(PFFF + +J + +/н+W+kн+ +++𡀽C+𜀽*F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC*F4Dx*FIF F4Dr*FAF Fm*F9FCf*F F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC-CF(PFFF +w + +0 +н+@+Tн+ ++w+C+*F4D*FIF F4D*FAF F*F9FCԻ*F4D*FIF F4D*FAF F*F9FC*F4D*FIF F4D *FAF F*F9FC*F4D*FIF F4D*FAF F*F9FC*F4DC*FIF F4D=*FAF F8*F9FC1*F4D*FIF F4D*FAF F*F9FC*F F4D*FIF F4D*FAF F*F9FC½*F4D *FIF F4D*FAF F*F9FC-O&- 8qM c<1;۲ p4,BF[FDK    +'P XF,4+"A"A2A2:A: P0 +P@р!F!FXF !F,!F4 p j'LF F F T( R _ { )F F k'L 0   T( R U )F F i'LK0  . T(0 R /  F)F h'L, 0  6 T(8 R   P X4 0  0!PFP!XFL!HFH!@F, !F>!FXF:!F,6!F ,!/!XF+!,'!4#Q ,+>]F p O e!F(Fi EhI d! DHR>!FHFMAF(FI  5    +2R+F p ]F>!FHF,QF(F(!F(F$dj!  DDEiJe  IEL+T9C F" F P  :  PFF IF@F)F F4,[FML PFIF@F)F F 4,[FMLLDLP XF,4; "  2 : 4,[FMD&=-`@ 0@R(P6QHR`5j4TF !Yh>j)PR)= Xˆ*!T@)x! A<*BIR(r*jﺱh︡A,Hf!n1uhe﵁bmqVilQy(K)`RiP(RR)}Vh`Z)`qvX,bR(r BgC`!f1B(p F#nF3d +EFm  a1 +1` C 7!" C'CCaCB ( `! a1  D' !C080C7@pp F$kF4e ,DF  @+; `cߊb!k{(afk{.qfai﹁o￑`K[bj`D #a!qj fd@lAdﴡeah︱iq`QD0bADj@cDPj`DJpD 4a DD DB, .$&(*` k"{j8+:;al`<+>;fb!4K6[g*a qk02f` dAjC bf!hd@!bqhai!dﴁ`ﰑeCC CC0Cj@*@pp F#nF3dO @+DE  @ m*!`A ba+ ;!@Oj# !CO* COJ0CO 3aO DC CB P+;!`A ba+;!DOJ!# CO `p0COj@O* pFFF*Fx*F9pr*F9Dp@h𵱰M F#oF}Dd3D`+F` C [CCߗCWvK XFo!n1eGmkmlk!j1fa{ie+gq;Cd3B0aDC3B x$+*;JK ia &+,;[ eq"(+.;>KDd $+*; ia &+,;[ eq"(+.; *;*K$+Cd0 ia &+,;[ eq"(+.;K $+*; &+,;[ "(+.;Cdiaeq@d1   FFF*F*F9p*F9Dp@ F$kF4e @,DF  e 4DD DB0Nf 4DD DB=)D@a 4DD DB `m*`ﰑaq bﲁ`ca!+ ;`AcQ@a1Bj %@ BJ0B*@+;K[b `dﴁbﲑcq!+;ea`AcQBPa1Bj`%@, .BJpB*$+&; K"[b `dﴁbﲑcq!(+*;ea`AcQBa1Bj%@< >BJB*4+6;0K2[b `dﴁbﲑcq!8+:;ea`AcQCa1Cj0%@CJ@*AF,FF*F p*F9p *F9D@p@վh @C# `pGƇ-+ ;`FnrhN"FXFaHtA(.~ +;fAhĎdAN!|$FNd! !ze"!JTbp pGiJ-h @hF3bGc' bW"a 2@*A р 2+p++ ++Gi pHc*+4+ǩ+p5+++ pJʭ+) k{@ NB- M-mʭ!ȍPA QM 5.^!Q(XA*ZaM A ,\ P F0 F  F0 F F0 F F F0 ?p#nFe E e 3@+E m +;$7iK [I;C k{FMDMc;iDI;C@FMDMcɔ;é㉔ ;DCiJC 00HciHm (1 Cj))1@MC D-c B @ p#jFd 3@+D #3d @+A #lFb3 +B( mcW081b'aGc7@ 0e!d1 @p`jdJ 00x` d*pxpx@ p`J0x e*Id px)px@J E*D 0*pF F2*@`; *1*9@"!hFnF>#b3 +Bm@+ @A!"AE`!@dd Ap* *+pG **,`7`'A1@!#"A@pG``!@pG**)pG ***`0`!a1!pG0 @pG-AEFu F8)F F , ,X F-#C`9F@F8F 8F )F \0@F\ F%e F&`-AFhFFFӹM}D(F#h# HxDBF9F0F `((FO0 $𵅰F!F(7H"DBFݢt"rOzsZC,nF  F+m+2F!F8F(n( FѺto n# F+eh O0?BpFh?C*?г/$! z (Ft#m+)F0F#(F#e8 S/C(ѿ_ # ppFh? г?г(0 DB0FB,m#+eO40F O4 Fp8Fh? ;8?г/8  (F# #e>(F8@#_C`8FhZ 0V#h < F@KX"{D0pG`x6pG! E#`-CFLFF|DT 00FT'0+4IF(D00FO0#D'00FKAF{DDhk8  K{DS "XkDFpG <F F!0 @B FF,#`O0 F !B 0 @B]hGpGpF FFh`0J# OzsAKL`B`@"YC|Da`! F#%``!F K {D`.`jh0hh#k`O0pMb@B: FCh+h `h#c`#`#@hFh0 @BJ# Ch`Ozs KDhYC!aChZ`Ch`@h#Fh0 @BMb@B0F"!hF6hh#jFFh0 @B0 ! F0!8 FX  FF0 F@H8F 6iFB Fai3a8i;aaopGF iXBXAFKB*Fx0&h (((0(n( (O0oooooo0F!HxDCFiFEN(pC_ FO0"F#o0^FPhCй oFJhFJFJFJxFJp8FJh FJ`FJX FJP FJH 0FJ@ FJ8(FJ0FJ((FJ FJ(FJFJFhZBi*iO F"h &C` o oFhhXh2h0O0 oFJ FJFJ8FJ FJFJFJFJFJ@FJhFJ~@FJv FJnFJf(FJ^@FJVFJN@FJF@pGpG8 ! FPM}Dha( FXo8OS+aOCcaOCa``#hiae`%`,`l```#a 8O08t'M}Dhi,h&hB#h FbhZ` `#ig`'`+hhZ`hh4F`6hh%hZ`hh```i``iea-AF?N ~D3i][B)D !F0piFhhO<#:BEQiiihB1hIiB`Eizi 0LD)ku+ %e% EٳE  O FFQD`OBB2*FF@@FoKD<O #JX   _E ٳEAF  0DBQFB,*0D(o$@FpPFj Fl FOFDo-iY[B D@siB"0+0F B"!hF KhFX##0(0 @ta F KhF J{DX##2#`o-C&GiFFkdQgg0DpFKhFX0###i0Os Fe0o(F @Fm "#C o -GO O  FFF O O F 0;0J 9j**m($4$,siB؝B/DB0 DP8%FE`P8j++pG0Fl M}D KhFX##Os0 F0-O&tFFgFg!("hFFQ FDKhF[0###iOc( Fop0ea ~F K J{DX##0hFOc F`#0𵉰@ M}D  H!D(Xg hFg(  K0 L{DYhFEE$ F 0$KhFJ{DX## FVKJ{DFX ###h BhhFjh J`` # #a ca O0o(F_S/:C!)ѿ_: h} F@"O F8!!(o !;_#FFe(o "FFL!Ȼ!(o !(L pG( K{D\a( oo(K{D\ pG8 Fر"O0FF ` F(F8#"SC (ѿ_! ht F8!Fhl h! F@U!Fh0! h FG o!Fh F@76;"O0F#FO1(o ! o !!!S(o !o L|D#h3IHyDxD `K{Dh0 dN-AFMF}D+h$2+h!DB /h8F 8F(н&K{DhBpGHxD0SHxD0-GmlF )+BOb FyDL(FhOcF)F F!F8F:X`Щ+#Ob F#pyD&(FDOcF)F F!F8F:X`OOb FyD(F$OcF)F F!F8Ft:X`lOb FyD(FOcF)F Fj!F8F@:X`8Ob FyD(FOcF)F FL!F8F :X`Ob FyD(FOcF)F F.!F8Fb9X`|Ob FyD(FOcF)F F!F8FD9X`^Ob FyDp(FOcF)F F!F8F&p9X`@hOb FyDR(FpOcF)F F!F8F<9X`"4Ob FyD4(FROcF)F F!F8F9X`Ob FyD(F4OcF)F F!F8F8X`Ob FyD(FOcF)F Fz!F8F8X`Ob FyD(FOcF)F F\!F8Fl8X`dOb FyD(FOcF)F F>!F8Fr88X`0Ob FyD(FOcF)F F !F8FT8X`nOb FyD(FOcF)F F!F8F67X`POb FyDb(FOcF)F F!F8F7X`2Ob FyDD(FbOcF)F F!F8Fh7X``Ob FyD&(FDOcF)F F!F8F47X`,Ob FyD(F&OcF)F F!F8F7X`Ob FyD(FOcF)F Fl!F8F6X`Ob FyD(FOcF)F FN!F8F6X`Ob FyD(FOcF)F F0!F8Fdd6X`~\Ob FyD(FOcF)F F!F8FF06X``(Ob FyDr(FOcF)F F!F8F(5X`BOb FyDT(FrOcF)F F!F8F 5X`$Ob FyD6(FTOcF)F F!F8F5X`Ob FyD(F6OcF)F F!F8F`5X`XOb FyD(FOcF)F F|!F8F,5X`+;Ob FyD(FOcF)F FZ!F8F4X`Ob FyD(FOcF)F FOcF)F F!F8F~KX`}IOb FyD(F"OcF)F F!F8FrKX`$0Bз m iJ@5 Lxe G*p ($t`M>D- exH(D T$TmO3" h0($u^X-OENFFF~D(|+l(+;+=K(hXhG8FLFC ऱC8C C f WB3S,B F(CTE'KG`X)i8hF!+h(F#%" (F 3F  :1F b8h0&j>)F FCibi9 F!NF ~DFF` F(FK8FX#`#``` F,KB~C3B E~C3sBأS;B pCB|K|KBsB瀣SwKBڀ C3#Bր3pKBʀ#Bǀ#s1jKBأS;BأsB3bKB3B𤀣Fsz]KB~CiCB3Bo|cDBRKB3BsyNKB}5أB|أSBwأ3Bp#dDKBjBho:q DBad?KB[أsBV3BS;)9KBNSBJobD5KBK}C_cB:أcB53 ,KB0,KB5}CocB+$'KB%cC|C3B"KBcC|B KBC3B KB  pG pG pG pG pG pG pGBG24BA30XB30YU11NV21NV12XR12BA24AB24RX15YV24XB15XR15BGR8YV16RGB8AYUVYVYUVYUYYUYV(K{DS pG pGpFF\i k"# ka!jj.b`kp@pHkpGFPhhh3`@Fhhh;`ch`hd F@\@Fhhjcjj3cb@ѿ8Fhjcjj;cbCj F4(F8@8Fhh kj k3b@8Fhhkj;bkk FG#hbj!jXh`k`k`k k kv F ku(F8@q8@hpGHxDpGF F( ( V-OFF @!FF^F(F=F c8BF`c8 k4 F0FZXFF(0:F#QFFhh(рFhh`b F"a" ``aa ,bccM F#`k k Fl IFhhzCF(O2hha`k k FR@F-OFO @! F F( c(Bgk/=ESB'ESBmESB@(FF8hF `_FXhq h ! ;F(Fjk D`k kv F ehCB(FF(hF `FXh/ FUFVFWF h-i(FFYFXhO ѫFUFVFWFFF" F`&aeaaa!b$bcc_ F@hpGhpGipG@ipGhpG `pG j`pG hjXhO0pGpFFFkh#iSCB k *F1Fj k pO0ppFFFHkcc kp@pkpGFi j:ihhKC@h!j F@-CFF ,!FFFرFb( F (F F#a#``cbcaaa#b F8j@i@ pG pGjDi`kr`ku F k]# ka\ F FakP# kaO F@Fj@S/:iѠj7 BѠj0 \pGpG#`F#CbF8FFF !FB8@-CF0 FCp8F0C^B^A0Z0QBQA"[i[ ``"abaaafb!bb\_S/:C!)ѿ_ |pG-GFKFF@FJF{D XB@F.h1FFkhBSF*FHF`XhI"FhyDGįKJ𵅰${DFFM!FXh#FnIF2FyD1h8F3h(h2CF8F FZN-O#F D(ҁj! K {Dhhoh)i"hF5hPC#hh*`hj`i`[i`#k&0"B`iAX)h0B6h0B\O F/FO0 Fr#kEC ciY+8Гh!F~FKiyiX0heci3DciY_LS/:C!)ѿ_ ciCci3D ciDO3$a  7h&0h0###kB0O 84KXp FFhh8h_( 8h0'#wC IF+abi JX <  h hKFhV!F@FRh 0h0h<0h>0@0FOFJFz (AF W F(FJF.FT0ZF i+#o+pci;Dhhjci NI;DhyDci QciD ;b kaFK FX0hGFbhh!hhUj0#aihZCX! _#oi FbjʊNpS/CQ)ѿ_ CB#i F CB F}!F `i+#i FpC0 F F S/C)ѿ_i_LS/:C!)ѿ_ l8F Fkj+h h((8p M}D.h ! nF(``J `(hh,`F` p Fp K{Dhh!fK{DhXhL|D h##``N@pM}DF pKXhG( M}D.hph@kCc K{DhXhp+hp`[h+ JzDHAIhPXXBXApG pG* pGIK-AF9h{DGNh)~DhiF  y! F(q8h` `6`h9K! hX+F``0h F&Xh0I"F`hyD1"p F ( h; F(h.`h,#KX+h+!@F((` N!~D0F"(`1F@FZ+h+K"F9h{Dhhg((hO3+`h`hh F (F i%'FD]!Fjg0d!FdjKJ{DX#F KpFN{Dh~D+1-hi)FF,h#``h#c`h<#` KX0hfO3 F3``K)Fp@{DhhQphpG K7 M!F{Dh}Dh85+h!Fh( 0|xIFhyD-OFh %TF cPDB0!'hF(𓁻h"`hC`;i`{i`#@F#cFccF` FO0 k F`a@ F&(F܀K$FY0FPnbh 0#iC#a#kB7  biVPci D\`ci Dci D`ci Dbci D^bO30 `*JL#(FBX60n! !F'&#kBX6`i&n Ffa(Fh`&#!F08F> F( !F(F,0 ,`.0#.0OC")FCFF+F  pnF #" ##,.p0 8ѭ,0.00")F[n+OC CFFFL_S_=CR*ѿ_-0F7#%O "%c+F @F ` L_S/RC!)ѿ_0FYL_S_=CR*ѿ_-}8FF9#k0 XC`a8 F_LS/:C!)ѿ_0F*L_S_=CR*ѿ_-N8FI`'bD` $(F-OFoDn7K1h{Dh)hiFh FP#`F-Okj)F0Ffob&$O0 #kB7 !F h0biʱ BDhYFF@FNJiiYih(biD#kaO3aW88h8h65#0c`#`, pGpGCpGCpGpG pG pG pG pG pG pG pGpGpGLH)-OF,xDhD<hFP$1kO0BpiP B4$*kj)FHF2K![0#.I*FhbyD1hjpri0#!"kh+hhO OSRF!SFEh  yh Rh!W+n!h0; 4U$O޽x pGBi:j0#KCX@ pG pGpG0 i` Bi` pGa icHih_ ܰ_̿  pGFpGFpG pG1 i3Hi0 pGFpGFpG pG-A$j FpH@MDiK@X0qihu`:i0a0h0 F8 pGjk3B4F pGpGpGpGpGpG pG pG pG8FCo FB K{Dhhoh)ieg 8T KF{Dhhoh)i)Kj@"0 +j 3R#pGj ! 3R#pG pGH)*`aBaȿ`pG-AFF *! F(#`` FB` F`#'afaai3apGFhi;+a@h! F@ FXQI@hyD h\ `F]K]KpG"s FDh1F FXB F1F Fp-AFOFh9F0FFT F9F0FF(F!iF `@i`pGpFF !FhFO@P"F1F(FF FppFF !FhFO@P"F1F(FF FpF F !FFxFO@Ph;F2F)F FF F FF&@l-OF F! 48<@FM`K}DB`" 0FX;F KF"XK{DL!F0FO FIFNyDY1FshFB J!+FzDv I"F#yD L!8F@ssF MF>}DF0k KX KJh{DF0F p<FFH0# 00FFFtpCWB%CVB$ChB_CB `#B=F FhC]C^)Fh#` 08F8;(#F0(x8P8l8%PdX8pFXzFpR@` @pO0ppF8 \F"!+hO`#gkhfNF( F&h HpO0pp8- F$ zgȿgJO@S0!(FO~SOB`D``aDaabBb b O08\_S/:C!)ѿ_ pGCo0lO0#k j!,3(JOC# j3b#k;#cCo0lO0#k j!,(OOC# j3b#k;#c0jZzJ"JzZj]zZuFjueZjZ0zj6zvjzj0]zjvZvjZjXzz7zwzzz0-OFjFFj80FYFApYFFAk#i 3#3D FFFQFFF08T4JEzzz: zzz zBzz'z]zz!qB1F'z9`z zD$pB'z0Fx`z*z:"rBgz*F`z:#sBFB`ܕB##` F8F0$0jj48$<YCrDZCzDCCz*zzzz:zzzz**۲B2F"zz:+۞BF&zz:+ۣB#F#zz)یB F$D`` -OF-FFnFLo+ h@*OO!FBF+@Ҁzg#:gf#:gb zg0  3zzgzWzg @ 1'q6 !FPF* z z z zzؿ@1gzqzNJXGؿ`XgɊ[ԴV;F2F)F F;(PzȊ:z*z6*""!F{PF !F z;F2F)F F$ z  z z hSFJFAF FhoHB0Hih%n- z@Hwz E$M mM$3CE` 0 -OFHFhah)yРhACBACBѦivi6&&0FD2{OS1FnK(xТihtcoX 0hB: _\2R1B(ѿ_ao `1jiBXJ0jqjzDA0 0jqjJ`2j22bX0I(Fhh$i F #C;#hQ0 CC FjF!A C# XO0U+K"  C#OOCMD#&j5BciO O hS606 K"BE##CcijKD[h"BF#C;S1+ C!hCB OKC E#A-OHFco0@#chj6v&00B,p1F,(F/߀ch+ѢhAK O O D0+)Ѣl@ABвo@CBl@B O O O O Fl@B O O O O O F#n ApnQBQA@A1 A"HIBJBBCC #l kAA ;[0J K PFYF)i@2 800hBP 0:FSF!F(F (@ $ILNdZRF3F9F m+i#+aD=+i3F"F9F(F , 00[00, 3F"F9F(F(O0  \_S/:C!)ѿ_ pGpFFO`CFHF2F)F Fp-O }H i 0+O@O1B33+0%FF0 ; 8oSlEzғlS80#4Bj$#i*b hA>PX {C0(cD0$BBқ  &DbE, rXBzhz`.A>065  E<'B 3FV,V 6n:F #7#K{D 3 K{Do SlB#lS10`4$" ZD y} !n b(F.F#yUi[ AC-TГihKB10F?"Z`h)h(FGF$#j ii&bohpm:hBY9jiB 9j{jC19j{j]`;j3;b\_S1C($#_ ihe4I (@"P9J$#j 9i2+fРn~F(\&5F &8"hiFh`'OS+R@_S/:C!)ѿ_(F& YhFh3*F B$"h (`0CA2 [0;CC# 0DB1`S`C!O0]oZ3PFi> XCO`CnRFhO0oSl+F(F F(q F(lE5Ӻ?QF@F(O1+FF(F(Sѹ `c(FbA(F4a b(F4(9,(FaDD F0 FOAF(Fع&`c(FaD;b x(Fafcb8b(Ft(-A?xFFFHpp!`b(fOg``` 3F+i$# +a/F(`c(Fa,a8gH F) F6(Fp(F+P FM0 FIFF(Fn F-CFOpF(r!Orhhns`hFp"B ?CI0Oh;C#$O CHo6a`9#`;`&C#HC Fg?& 3gBѯk"O B@21 \hshx(k3C ?C#g FB@XFJh F* ѐB"BB`Bњ`C`Bh``"hkihG h: F8h ;` hkiR&Gch:;B#h6XQFc`h;``h-AFF !FFF#aFC``` Fa F5(FA``pG-OF%3B&X5@ ı#F`chE#hS+siG  h FTF@5H@#`Fi F@hhBhKC/pG-OFF8@iP1` F.uh8E=1hFIYGF( {SFBF1FXF!8Fh F-OFF&0B20S6@'Fo#K(0 jZOH4C,C,<6bӱikbi#XF;F8#4 PT;@ + :3 :Kt0H 8# {zYCFph_@SO 9bKCA01`j Y@l01hC! @B#-O `FFxp{k38Fj*$%`AN4AeCqhsEpыhmKi+jЋih+fЃh~_bsY*B{m 8F $#qYc0i'h8w$#di hhB3+0 xhD"i," "i @sY"cChhPFp c8FJ0i  A) F7`O 0^F`!FgOJ>7T&TS)3S& Q"0 R&P"0 R&P$0@#FEB 0[B(+FB8,FT) F[`O*$P`bbAB`eO PFP&Nj`Xf4 `PpfUFS&b$TF$TF"R&D"R&$`MgEw%D!>FFFAB0K E(FB8&F+[BDcF'FhV-AFF FACvBACB!"FcxG FFGEqE(qFrE8rF+[BDsF!b )F>W0`BACBнxA(DFB[B(+FB8*F#b"FAȾ-O D A$FDB1^[ 3*. lNOA.F''Y O6 7]7Dmf+,4 $#3  -;D1BB`hg@-AO\O'0K>$ 3PE(FE8FH#P6tFeF!_QHO|OENdOCAt vNANabRTDVd($af@Pla,ajkﻡPR&*f]PKﺱR&}ﻡg 08F k` +`eD: 2 ch gj'o"PF@a@K#"3hF KFCY DBH#OА B@#sh [##BC B@#ch+Y0C"i2! [3i#C1;S0+BC @#S1+#DchOC O2OC# D000p/`A -AFoFF0FJh1 ak oH F3 Q`"H# #hooӹ/iO`CnO0&B!0F70Z`#H'0obkkH1ZC#kB oD8DF3kH#3 L* +A# 9@!0pG8F %h`i`eaa8-AFF&Pű/khihm{+h0hFeeefan(FF 5hu+iK(FP;3`(F.F4%hu+mK(FPT;#`(F,F-OiF FZ3a! F#afh#h ihiB ѩh"jB*h'`h+``5+F-h3 F(zK8FJ{DzDFHFRh3``6F\0Fa:FH110FF8Fn/F-@hh@Fi`h$ 03hh2`"i`#a76hH"( `F@KJ{DK{DF8F0#i`+`%aT5E(F 2FH01(FF0F/@O7#i&idh%iF;h6hB8Fh.O#a i8l6lB8Fh.#+e+m i! FciXhhB јh!iBh`bi`caFh F(`(F#ihhT3 h2F0hh}h k`#i`TlT hh0z70z1:_ Z!Z_ :cJ$Z0Jd j_ j!zz:JJ(%Ze&jf'zg1Zjz_<%z==z_ ZO j#Z_l$j `'zg%Ze&jf!ZjzzHz@z   R'z_ 'Zr H(j)j!Zezgj'&z'Zzjz_ / .z0z      : _̅ jzz!&j`z ' jz (!(!8z8zJ_& H_!_<00 00(;0p`PZD<$`0 ~ -zz 8p":l+ 0  4 >^:j=>^JJzj zZZX#jF$zj%zEÅjzz "028 K>  0  7 0_ r H_ !_ V70_1lZ!_<_̅p_z 0zgz zzzgz zzzgz  zzzgz zzzgz zzzgz zzzgz z zzgz z zzgz, z zzgz z zzgz zzzgz<000SM 8(p@  *    j!*:ZajJjbZR:jRzc%zDzC@zK Z#'Jd#zc!z$Z# S!zSz"ZZe$j&jf$:):h$J(zg$z'$Z% Zjj ::J zzZ040D0T0X0\0`05S*:#(À,3À88<#H 8#L #p0 t0p0/z zzZ '  q@ z : : zJJjZZjHzzgj&:#:cJ$JdZ%Zez& : : z:JJj*ZZz %0 $ "         @ $R_/ //_/-0?S , OL.CSf2 ) .CS4 , .CSf6M00?S  , ZL.CSf2 ) .CS4 , .CSf6X00?S , eL.CSf2 ) .CS4 , .CSf6c0 0?S , pL.CSf2 ) .CS4 , .CSf6n0L/CSf: f&f/CS3; S; S+R^?p B?R7R56s0L/CSf: f&f/CS3; S; S+R^?p B?R7R56s0L/CSf: ]f&f/CS3; S; S+R^?p B?R7~R56s0L/CSf: [f&f/CS3; S; S+R\?p B?R7XR56s0}S< , -CSf>7 SI , -CSf>D ) /CS8) 3#3/CS9$ qSK , -CSf>F ) /CS8@ 3#3/CS9; ) /CS8 3#3/CS9 sSB , -CSf>= ) /CS87 3#3/CS92 ;;;+;;s0&;s0;s0 ;s0O-M8 ^ p0"0($ )03Sh UR  02  !UR" `"@B@A( R PT V Vf V p WxP` Y@G  0  !UR aUV` !UR Rp Q   p%Q8 ( D  R1 < RC PR%  @$ " ,$(, "0#(,0 0 0 UOP 0 :R  ( ЍR R R* (ˠRR:R R RQ   dRRO-@-$MQ P `0+Sl 㚙 33P 3?CS~f0pLoCfCCL^C㙎C̾CC^?@ ?RK Rf" XR Rf.% ?R> Rf" oR Rf.% ?Rd Rf" BR Rf.% ?RC Rf" ZR Rf.x0%S@ 0604 8zz0CJzz{;48zz0CJzzG;48zz0CJzz;48zz0CJzz;40PV8:^zzGzzK^zzgzzGzހK^zzGzzgzހK^>zz'gzz?Q! < kL>CQf 9 >CQ < >CQf j0P f6f?CQ3 QZ0   8@0Q 0<0$ЍRf* R( R) R@@Q@T/pA/Q'Q%&r Rf* o R( R) R@@Q@T/pA/Q'Q%&r Rf* k R( R) R@@Q@T/pA/Q'Q%&r Rf* T R( R) R@@Q@T/pA/Q'lQ%&r R$ Rf& R$ Rf&% ?R+ R3+ R+ x R3+ R+% ?R+R$ Rf& R$ Rf& R3+ R+ R3+ R+ SP c 0R0C:犸\ PP PEZz" @z;4z@'zz zߊ 0zz050 >?SS  -LCSf2 S  CSf> SQ\?pA\7J\ 56s04>?S1  LCSf2 yS  CSf> SQ\?pA\7)\ 56s04>?S   LCSf2 `S  CSf> SQP?pAP7P56s04060 0Kp0CSSq++?Qx < L>CQf2 9 >CQ4 < >CQf6 Q 00P0S?p@?P7P56s0?QU < L>CQf2 9 >CQ4 < >CQf6 Q 00P0S?p@?P7P56s0PCG?Q. < L>CQf2 19 >CQ4 < >CQf6 Q 00P0S?p@?P7cPb56s0?Q < eL>CQf2{ D9 >CQ4u < >CQf6p Q 00P0S?gp@?P7AP@56s0\LCSf: ffCS3; S; LCSf: ffCS3; S; LCSf:% ffCS3; S; L?CQf 9 ?CQ 333?CQ Q;S\L?CQf: 9 ?CQ8 333?CQ9 L?CQf: 9 ?CQ8 333?CQ9 `L?CQf: 9 ?CQ8 333?CQ9 'L?CQf: 9 ?CQ8 333?CQ9  CS4  CSf6  CS4  CSf6  CS4_  CSf6Z G CS8T 33CS9O < CS8m 33CS9h U CS8 33CS9 nQ < =CQf k+r X+r F+r `+r kq;;;;vP  aQ0y < =CQf>t f6f?CQ3;n QjQ0 < =CQf>{ mf6f?CQ3;i Qef6f?CQ3;I QEf6f?CQ3;e QVaQ0S < =CQf>N sQ02 < =CQf>- ;;;;s0/;s08;s0;s0>;s0;s0;s0O- M=0CSY(PY80: CR $Q$`hp@0& > 2&3^ < T3<CZ kjihgfed  0$Q$\RP < T3<CZ @?>=<;:9  0$Q$\0  ,Q,R^ 0EPEUSQ@`Tp Ѝ 01Q 01Q0T0 CR)('&%$#"0$Q$R P+ 01Q0 01Q/0CZ 񏐒0CZ I>?>=<;:9876(0 F (( IyD@1 IyD1IyDhF*F)iF(F04D,D$DFX FGF)F8F2F0:F!(FFx(FF `0)FDdF0(F FG8F F8FChdA Fhj* F}O08KI! F{Dwo8.QF00h F@G-CFF FF F0-FU0 && 1F"h(FFc F0FF(FCF:FMF`` F(F-AFFFF lFc)Fh2F@0;;F+F`` F(FhV( o -AFEh(FF ddoH.A#h08Fk`!dFd(Ѹ*#h8Fk`!dFd(Ѹ"FkRD8Fn`!dGFd(& FAp FDhmBda0F#fB2knR# 3 DfpChdChdChdChdD0pD(FFFB(F(F"FF0F Fp[(op\_behknqtwz}  "%(+.147:=@CFILORUX[^adgjHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpG~HxDpG~HxDpG}HxDpG}HxDpG|HxDpG|HxDpG{HxDpG{HxDpGzHxDpGzHxDpGyHxDpGyHxDpGxHxDpGxHxDpGwHxDpGwHxDpGvHxDpGvHxDpGuHxDpGuHxDpGtHxDpGtHxDpGsHxDpGsHxDpGrHxDpGrHxDpGqHxDpGqHxDpGpHxDpGpHxDpGoHxDpGoHxDpGnHxDpGnHxDpGmHxDpGmHxDpGlHxDpGlHxDpGkHxDpGkHxDpGjHxDpGjHxDpGiHxDpGiHxDpGhHxDpGhHxDpGgHxDpGgHxDpGfHxDpGfHxDpGeHxDpGeHxDpGdHxDpGdHxDpGcHxDpGcHxDpGbHxDpGbHxDpGaHxDpGaHxDpG`HxDpG`HxDpG_HxDpG_HxDpG^HxDpG^HxDpG]HxDpG]HxDpGEKNKNKNKNKNKNENEN3?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?N?NMM'N$I&T&NNNNNLoiLLWMMMMMMMAMMM*L8FhhIFHhahh e`[`88pFN F~Dh2Fh`hD(ۣhhBD `p F(#`apGLiCiiDDpGipGih `H 4\ D FhFFAhFB(4"F`"UisH -iK")F8F{DO3 FlL-AF%FFF!`!eaa%a``\``gc3F(&ceb%babBS+j Db AbpG-OOjDFFFO F'%BیB  57kS OE>shBh6h( к j EډE ڠDEи и 7LF5OO47GkE۸=AjD,q``-AFFh!FF3FjF1F(F0;hjj !Ff```! #apG-BFFFgI/ #ici33 #acai+Y8FhDF"h`hpDO3(ۣhhBD` F(!hhB F"h`hO3pD\(I/D` #`a1F Fx0 BpGJ-CFFFi3ai+V@FhDF"hhgh 8DO32(ۣhhBD` F ( hhB Fh"hghO3 8D(ID` #`a1F F0 CpGI-CFFF~i+V@FhDF"hhgh 8DO3(ۣhhBD` F( hhB Fh"hghO3 8D(ID` #`a1F F0 CpGI-CFFF ici3cai+V@Fh0DF"hhgh 8DO3T(ۣhhBD` FA( hhB F6h"hghO3 8D(ID` #`a1F F)0 CpGH-CFFF ii3ai+V@FhDF"hhgh 8DO3(ۣhhBD` F( hhB Fh"hghO3 8D(ID` #`a1F F0 CpG9G-CFFF i+i+V@FhODF"hhgh 8DO3r(ۣhhBD` F`( hhB FUh"hghO3 8D,(ID` #`a1F FH0 CpG[F8( HxDpGHxDpGHxDpGHxDpGHxDpGEEEEE)-AFFFF)h#`` +h)F`G(O,`(F#`$+` F!1IqF;FBFFd!F(FG(ǿ4`&F5`.F̿$h-h5`4`#`h ``pGh F`pGh h`pG#3hFpGF #h`FFpGh#BFpG) pG7 FF@+FF F0pF h0F FG#cbp#E```hhDi3D``2abiBcap8FF A`OSC`)F`h #` ` `88FhرhAhhh;[`hAhh[`hhi[ahi;ah[hG(F-%`8pFEhh)F F2F0 ppG-AhFF%\j i2ah j;iB#Kb0 B !+D0 FhiDa:F FphB؟B8FYF(0`3h``hiDa IF(0``hiDa:F!hhhpGpFFF!("&`e`p`!Os"C`#`Os`#a#Ca#aabBbbbcCcccdCdddeCeee9)<  "$&(*,.02468B`*`(`&a$Ba"a abBbbbcBcccd Bd ddeBeee pG pGC#+  pG0 pGC`ù#9d) OrbB`#cCccc#e#deCepGx, ))]K]K ]KpG8F% #F!`!e``` a` 8 +-A$@O4D4\!` +O&NL!p i $%Y$CQ +iF#O3@P!3@@-AFhFF+ FAhh3D'Chh3BOAhyFh!iL%a ch!"i F3B#3Fhahch3c`h3D ;`  F!0  F!0  F !0 @hpGhpGChhpG@hpGipGB h; , ,( 2F)FPF[F(, SF2F)FXF(3FZF)Fp(CF2F)F( Fda`h%`lq( hh XBXApGC+ (( hh(8(  pG pG pG FX!FF F E`%`1F`80Ga(4C_B# F`𵉰F0FFIyD, d# I0FyD e#` khhFH K:FL!hh{D hh F 0R:Fhd+e+3I FyDIyDIyD Ff^:-AFO$mFDDDk FL1O ,(F AFW$+ݕ0F4 , -- )h pG-O̱FFpIOk0FDyD &L[(8Fc@Fx80&  (  ! FCF+/ؕ h%F`hP.F ӺIK{DHK{DHK{DGK{DY!FK{D CKY!`h{D! F|00 K F>JXzDF(j+8K F8JXzDF}(?z4J1F FzDt(p1J1F FzDk(?h-K F-JXzDF_(?\)K F)JXzDFS(?P40[lc#K F#JXzDFC0  "82d222t222tS2 2.211221%+Chhp%+!+уi+"+уi+ pGj-OFhF&'hB?#%+=!+jOO h$ KjB pI G h0&+0(F, ahG+nF,G ghh0F9FO0FpF FBD*#Z@*?!;+: 99#jjXBXApiiB+++&jjB!hhQhXhбhhhh`hFhhB Ѳ,,,@ p p p8 F!F0E`F 8K-O {D$Eh4#! #Fhб)F0FN)FIxkhhhFH?` d00FS"p0(7=hE30Bkh.*@ '+@ɀ# 1F( i@ ',𗀹0'+,, BѤ.TBTA.+, 0@F hF j+ЃB@F ~  F v E IF FF YFEE9D BЈE Ѹ0"+0+5Ѹ0 Z@ڹ%+*!+, jBx hRh[h&*&+$ 0hh??1?V,?S0F_(L)F0FT(??h%0B208FS%@=(?4#hZh/+[hhF(TЃ# L0F!(G0F(A#hh#`5 ;.+$1FF0/*hhjjBhhhh#(@,?ih CkhZxhZphhhYh];hh;`$h#P-Oi&Chkh FOkF hFhEp;i FS(`M(iO  .^ph'+/+4S!FXFF2FIF(F(0>+ й0s0+XF1F( 2F(F(IF F(ѭFF(F FpF2F 2FQF F}@2FIF(F(ы6h F(OF   hEb;iS(` F(?kFi.Oph'; +-E,,,,,,!E!FXF!XFFxKy>+Ћs0+ F_(>F#9F(?72F F.F(?, FF2F2FIF(FZ(?6h Fl(?hOI 9Ej:i  FR#`T(?iO bFF.Mph'; +-C,,,,,,!C!FH!HFxKy>+Ћs0+ F(F!F(?2F FF(? F|FZF1F(F(?6hPF  B 0BhX3$n40  hF"Sn4DhB `2FhDh `Ah ``-OF4FVFV[ݱ+n3j+j{hhdchShC2F!n(n#i+ -hPF9FM0 U!@FF(MciChkQhhhi`hi jab"i*a"iBhR#hB#3j"b#iBhS"Ch+YhB]`h@iPhk+hB`hh2O3#f0BPXF-OhFKkAh i  ' hB+iS'@i#j+!j#i+hh!0h hBJh<0i**7YF0 Fnn*FF("nF*F(*F1n(*F(MFMSF+ihZhBh-hbisi*6>0+ci+ ( PF(000B !FSF(DjB;}hBh*hkhkPh+)ljBgO3#f3h*QhBh`bh`hhjQh#iBhU#BE#`3vi.?Ch0kKhB#Yh +*jB k} !(?khC`h`F-hbhRh`Fh6h!0#hh,*n2 .i"BhW"pwE2h#`F1F-AF8F F X(!F8FA H#++ F(4#k]hj[ishBh`(Fh-+ h0FhF FcBhOS%90F(hC5!F0F%F*F!F8F ((FFF  Mi-ЫhkThBah0F``$h-h-O FFhihHF3$qh40 F(O7heh E=Dh\Ym3#fO "iE h"FHFQ+(  HF7(hYh &) hF`j)HF!b(mТj**!&)jmG@ h#n AhnB`"a,#h nB&+jmG@  #hbRh`##a#b"iBhR# 3e :=khgD</ hY]i%h-h?<$AF0hP1$ F-GF FF8FT$^h!hFnF(kkiF $Hh9D<<OhY+iE h*F8FS((8F_(0Zh&* hF0j)8FIb( 9<$0F F-Oh i4Ah  q(,#0BI 0S"Pj+Jj+GhP2i hh#i+6hBh<гBB48i+@n0"+@ FB#F B$4$- %Fe. .Fn+0$QBѲj*j:3##FFi*rhh*'FFcj+j+i+chh+{hh 0 XF ( [jљE$#`E0khhBСB [F@h( DhBСB [F@h(m DhB;BFB7BFh*%!c a! (G jh` hQ` h` O FkFF9n*n60nB݈B34 nB݈B3+hhZF+W`1B)h$v{h"]`{h`#+ahbF`zaBгBУBh `Fh Q#e P#BбBСBГB@"23 R# fP# BвBТBЋB@! 13x`h`jh#B P#B@#p3hki{a+?hbhh` Fi`ia7F&h( F -GF@F FF F(\ F~/hh/Q:F!(h@F(I9F0FJ,"h9F(F(6#.+`hp"ahjM``0!F@F {&#++ 'k/"yh(F?h'cBh"(FS'7&0FphKkAhh C $hBhS$0iE"ih0Fs(-h4 pF-FFh@F hH mG"#FC,Bj2C;F2F!j,``( F-OF F-*i(*@E+!hh.[h+"1F h F(1F9F FF(#D!UA+chh/܀րh.Ҁphn FAF FF(€sh"C`3F h TF()FshAF F0F(3F"IF h <F()F1F FF(9FCF" h 'F()Fm9F FmF("G+uhtoBF! hF(fJF! hF (]BF! hF (TJF! h (L#!",0-. ,- .0j ,0jbV)F F1h0`XB& F"X  [h h FF )F 9F FF hhQ6."I+ghh Жh.hh#2FFKFF! h F()F "ihjp`(1F FF(BF! FF(1F" h _F()F CF"!jp`(1F FF(:F ! h0F()F AF F(;F2FC+@׀hh/hh(AFF;F" h F(?|)F _AF F_F(?qIF;F" h F(?g)F J{hIF F0GF(?Y"AF h F(?P)F 39F F3F(?E2F! FF(?:2F! FF(?/2F! FF(?$2F! FF(?SFJF@! h @F(? )F 1F FF(?CFF" h F(?)F AF FF(?9F" h F(?)F 9F FF(?ٮ3F1F" h lF(?Ϯ)F 1F FF(?Į;F"bJ+@h?^h.?#2FF!CF h F(?)F "ihjUx`(?9F FF(?hh1!F FGF(?#k3F"9F h F(?x)F [1F F[F(?mKFF"9F h F(?a9F DIF FDF(?V3F" h F(?M)F 01F F0(?CF"AF5<.eB;?K+@[hh*?-Zh*?(h/?$hh#FF! h GF(?)F {h1F Fs`F(?FF" h F(?1F IF FF(?;F"9F h F(?1F IF FF(?ݭBF!2 F(?ҭhh(BFF9 F(?ĭBF! F{F(?[FF" h LF(?1F YF FF(?SF" h 8F(?1F ~QF F~F(?IF" h $F(?1F jIF FjF(?|F" h F(?r1F UCF"!jx(?dQF FJF(?\#JF6! h F(?Q1F 4IF F4F(?F;F"1F h F(?<1F QF FF(?1IF" h F(?(1F IF F F(?;F" h F(?)F 9F FF(?3F" h F(?)F 1F FF(?"9F h F(?)F 1F F(?BF%! h |)+ hh.?Ѭhho!F a*+ hh.?¬hh`!F R2+-hh.?hhQ!F FgF(?1F" h 9F(?)F 1F FF(?4!# h .3+2hh*?#5! h F(?y)F \1F F\F(?nhh + F! F"F(?`"1F h F(?W)F2B+:hh*?N[h+?J! hN! sF(?@)F #qh hw(?6#1F`p` FF(?+(! h F(?#)F 5F -*hh(F r1?-A F8F F (>+++&,kah ++0F ``$hhOS$ ++ 4kB)F0FFXF0F(hCF)F8F ( F𵏰hhKkAh i[k X%hB"hS%`j!8FرbiTah8FCx[H``$hti1F *F,0qhj jAF F3FP:F! h +F9F *Fbyhj Pp`1F FF"F!BF h F@IF l)F FG -OF F)ɂ i!*4+@hh3!+ѳi+h 8F(jj 'bhhh`ychishiB@͂+#B_XB@‚30F9"*+@hh/^h.3&+@𩂃hjnG({hiB$*`&+@σhh+c]&*@ ihjnGhFZh*J(۸BAF!(h nF(( B@3FRFAF(F2( B@u Fy+ghh._h/3&+) 1Fh chzhiiB*+@:F!(h F(!F 2#+Fah iBo3;&+5 9Fh (chrhiiB*+@2F!(h F(?u!F #+Fah iB΀3+lhh/?^^h.?Z;&++T 9Fh chzhiiB*+:F!(h lF(?:!F #+Fah iB39F3&+Rm 1Fh T(?IchrhiiB*@+r2F!(h 7F(?!F #+Fah iB^3+"Ki+?h?_h/?䮸0!+ 0+;!+i+ 0h*?Ȯhh+?îB0zhiiB+Hh F(h F(?!F 6,0, Bh  mGb1F%+Ůhh+?Wh/?􍮖h.?&*hjRnG(9F1F(F!-*hhhjnG:FF!(h F(?c!F0F ,BFKF!F(F %-A F8F F (>+++&,kah ++0F ``$hhOS$ ++ 4kB)F0FMFXF0F(hCF)F8F ( F𵏰hKkAhih `&hB#hS&@ j!8FرbiUih8FCx[Hh`-hdiFOO  nqh#ZF FU(6hO!`hF(E``ia /7'-Oհ{DF$FXIhJ ShBhJkhRh* !ihF "('`^sh4ZyiD6hD`^sh4ZyiD6hD40hh ; f1ihF (]ih9 (VihA (O ihPF (F6 h P{D -kh Zk  (/h9D<%hYiyh /+j#+2F@F( ?hj12F@F( 9`IBI'F4F I)IXh;hAh[hBF`h-hzI,5{D 5{D 5{D ci+@ x"@F #F(F X #FcX " IF(h0FBF'IF SFHF HF(lL!=F(d0 (]4 (Q#O~Rb!0a0ZfrF(?F` 0t!eF(2F`(0g#(Fsf } x"@F#F BF8F ;h+ X0O JFiX0X0jX0#F F(#O CF F(ށ#!efF(ҁE`)F F(Ɓah [:FQF qF(ah O:F! F(ah Ach[hi bf "@F#FBF8F ;h+𐁝X0"O Ob"X0X0bX0#0 xF(gy!XCqfF(WE`0)F F(Jah :FAF F(>ah ah F! ++kYhbhB_`h#QB `h^#BN#p3ahF( ChSh+@!+уi++KFE(3Fhm G!F YF(ڀb"cEccyh 9(̀:F! F(ÀAF XHF !b F(AF I 0 +!` 0 +SDB /!B;!+ѻi++#!KE ( ,Fsk$[h,6sk)F 5F(kah *F;F! (F(_ah kx!CkpF(Q RFE`)Fpk0 (DQF vub;F2Fi(6 (F y1F(F yFб;/+ѣi9FXk0 F(Уi9FXk0  9F0 cA CX#J3$hd+Y ShBЧ>J+? @,?ah($hU4F FhF1FoF o8F n(!F( 0F `8)F F V0  -AFF FF EFOC#jBiB#++ki+КhBhcx[i+ZhBh!F8F #++ $k,УhB:Fah(Fx$h&cBh:F(FS&6@F-OFhE# ah(F (ah0F (1F#i`hRk ( X()F](O ")F  F( (khFYh2 h*Zj*j*j+"*њi*hZh0"+0+&+0h+`0jG 0FZh0++&+`0jG00FjhFkFFF 0&+"+уi+`0,G(~ /?{B?xt;+?o hah@F )(oh BF8F( BF8F(wjѱBF8Fk hL(? F ##V@F 0(? [kkh BБFah0Fk (;#*BkhҀR*kh0kjQFF0F (0ihkYF0F F0F ( h F(F#hih0F ((F(Xй0IF++0F rF(E QF(ƀO 0E 0S+0+F0F U(F 0C+  0[!oF(#`ZFQF Xk0 K(RFIF0F >#(0jhkRnd rihkiB hR#BB#3h;aFGF3'h RFh#;a`h2(K H PFNFAF0F (AFXF F0++0KhCEJ` h# B Q#@EA# 3 Zhk3hihB`hhO 5Cy>+ ih*ћhiXBXApG pG-CF F%+F CyF>+ ih+F0h (w#it2+K+Kh+i#=B)3#D,0+h0&+h;!+ѻi+)Fj M(hh.+hh%+ [CyF>+ih*iBF0h 7F(;i!C`0h F( "jb0i x`(!0h #0hh_`chC`F$O3F;`` hh.)hh)")ѫi+h[h&)hjG8` hh3` F0O3$` `h[h!(јi(Xhi( h,0$h%.-h$h` `0 F0%+$ F( F-CFF FFF8F0h (_#i"+%+  jHF rF(zBC4hK9F0h ~(;;iC`h+1lh F(!F0h kF(#iC`/h8FF(9FHF = F9F0h QF(;iF"C`CF0h chO-O 0 FFKhF!"@FiJhhRh")@i)}")xёi)u "!h"(jјi()e2@<(\ "(WѠi(T92@L S KF8h 4!F`0(< $ RF F(3 B/%D,<  8h 4KF!F`0 BRF F B B 5D,/ / `(+ уiu;+"H@0 pG pGj+$ij"+* 0RjB[n n+ C;iR#0j*j@ pG pGFpG pGnpZw{ hhRiB O40BP FSi#$#`i3 ?3<+(#D21Bp-CFP$-=)i0FDii0FDi0FDi0FD)j0FDij0FDj0FDj0FD)k0FDik0FD-hFXhF1 `@F _Fjh31F0 N!FQHEĿF5F)F0 ?0a0ilʈF!N0#"C````F8!Fh F 80 mGb(h (#"`!Fa``(h( F8FF  "+%ыi;+!  *hh:`*hRh"`*Лi;+JzD\#"*`9` `(ЂjSh;S`#hjh3`#h+`# 3`p FF F!h GF p)F j+h!F0h2l( FpBsFB Bs"J!K{D K0h+hh+!Rh*#OM*U+?+.CDS#+ .C@T##"#F!F(+.C<U#+ .C8!Qd9# +."C4dJe:#Os#F!F0F{*٣4*%6+"4+5+@D#{+ |+7+@A#F#C#B#E#hh*"#:*;+#<+ # #!#hh*#Ox++ h$h+y$R#3+h%h+lZhi% #* " "+h&h+XRh*T& # #9H+ h'h+D'V##*,؃+(hJ*h+.(G#h*%[h+!(H#Och+(I#Oc*h)h*+ ##)KsF (h*iUh--a) h'j hh)V .)Gj+D*B(PF!FPFŁ$+!lK!kK!iK!iKgK!O O M !cKO _K!O O N  ; ;!$;!$3,!TJ1!SJQJ!O O O +!NJLJ!O O P !HJFJ!O O Q !BJO O @J!O R "O+F (F  @b@F#( +6Ѫ0(F 00#.#Ks#hF KsOs(F"'" #Fhrpp(FAF8F"n`2B?Ϯ"F'"OpF (FMjiӱkm[jBSn>""@a+"(FFF/(Fr(dhpC `%p,i*(Tjpih1 (JjOrO (Fhh-# #FFs(70Fй(F*F(F(F"#FniBjB in(F0Fk(nq0F0r0s0p;0 wIhPCii ;+0B pG pG-OFFh!FF%F(6O2F+FO ``a G H?5O -aO3hf#g(Fdgsh#`sh3s` F F!up#``C`O30000-O$hFF9)F0Y0@+7FeF=h/8hhPh'n`p7B (p/4ph'/ p%okoh)/ 4hc90>_hhXhx`pBhppB_hpp/FhF#B3iP#P@\ i8`i i BsB Bs"J! K8F{D 10FIHD`C `3 8(#@H@0 pG pG'8(#@L@0 pG pGF5hFDNs#F4OtUt0OtM/#F,$Fk(#@$?$# $8 #$1+#$*#$##$#$#OD #O4%#O4=FFF!Fe((`3h#4`hKhJ!h0  F-OFiFF@+H ++?A+ +.>Ыh"FAF8F`h# ("FAF+i8F#(5#%  f{zg  A#"FfAF8Fh#( h#w"FAFh8F#(?r h V C jhiD)O1"F#AF8F(oh `h#>"FAFh8F#(?9 h"FAFh8F#t(?$"FAFh8F#f(? +ir"FAFh8F#Q(?"FAFh8F#C(?"FAFh8F #3(?#fOhO "FAF8F0hh0+i#(?Ȯ ki[F$h"FAF8F0h#(? +i# # 0h#"FAF8F(? MF HCh;+рiXBXApG pG.+(+рi8(  pG pG pGF KhhJ+УS*/;+,-Рjj()ЬB #*Z@*!*(+ѢiiBcnB#BhR#phR# '*ЗBо*310( F(#.+Ѥj,Эj-Щjj(ШX@ @ -OFFFF$\4O VF!SAE(йsF%BS 2hFS ,E-T*5(%T 0`5hd16%D*[ 4G"h`` $  -C FFB O~SF<ի D$&&$>D&$3DF&$'"D F&$)$t &&)$t&@& f)$dOvOv 9iQ$D4b7չi)41h$ I4&@#i(@8j~(@xjx(@jr(@jl(@8kf(@ #Ba?ոDD6hDDD@/DDD(DDD !+DDDoDDo3#F8F(?&DDD&v,*ոDD"DDD *DDDo#F8F(?DDD&vV` թD *?D$ e# oDd(?֮D$ UD9s5o<%0i(ժ?0n "ժ%+)o#F8F)(?D`w nD@D1 ժD +?D FI4&@v-GFFF"!(FFZ;&+{h$iB \0jG4 #&#)F@F2F-OFFFFFFO0F.K{D3P;h@#@R)KD+,Eд BE? I ckcYiBЙjBkBE`uO BEȿ% Ѵ0CE+F#ZF Fux#h F9h8`$h F~-AFSkF&$0Fh!`@ ,Sk@\@l@<@ <@<W 9FHH( "3F)F h 2`a0 8FCh$0[khP5 8 #h h# 2z`a(##aiiZhj*{эA )߿.o.{ܿoEs{osh 8pFhiıc{ !h.#iFh F !h.Bc{Ccs$h(h0 p *F FFF @io 3iBc3akhj+ڍdڅ. 8hB@c . +{C +sFhhVujiih 0{F h F(1-h5jiih 0{F h F-h6hi$i-hͱ+{2F)F`iJCF)F8Fq( 3F)F F -OFiFFKk)^hDhj!Fj"`C`[hi )F`$h;F4 hRk"FXjK9F hY0;Fg BF!h0F(%  (ZK 4 YJ9F hY0#ih[k#Y (0F;(, (zFК SQF HQF0F'F0F"(0F(Тhh4Rk h"F(ЍBF0F!h7(=ѣhh[kh&K*FI!0F{D$s0Fh(?n0FR(?h (?b"i9F hhRk  (?L0F(E0F!(?@ +s8|o#V2 3+@h@ ]-O F h+i*h5%%F-'hhw3(.0Cf#/2 0J*<3+g#` JTT3+&hsh;T+3JzDO F'O ;0;jӍC0   cki3 ci3kX`#003йй ci3X`7/ѹѱog h;0%#hof%`F&hB<;iS&0@(F1)F(F-(F((F# (F$(F((F,(F0(F 4(Fdh6-O@ FO FFFSF F hnh (H C`;#BF!FnF / #gt(Faa!F0#BFnF(#f-O%!gJFcgf{hi( F-CF0FFFOq5"n GF ((F-O% cfBF{hi(h F4cCS`pFFh !.}+FFh hp@FFFF+- "!hSC"00` ycq2hQycQqihhZk3h"ZyBZq :hYyRhi*""bYq:h! hF(9hZ1F h|F(*F1F hF(k{8)F FCksii+`iaxc*Fi1F 0]0 -O $FF 0 -K{D)F($0"j[h8h]hc( O3PF&F -s !h.FB-Y+y;+' 8F3F ?(Ѷly #" !8h 3o (jyFy$bqFO;VF*y**+Fhh8hO+yy cCyqjybCqkyBycBqҲky@cEBq0`(l+hF#F-h[FZ Ѝ 3F 8F(RЙ 0C 0LiH8iD+y+?h.Oshj\ks{2iy+h-3{!F@F[(h!F@FL{iY#0{iY BD̿##+!F@FL( L !h.>)ck[hB(B<3B-h  H F)F F{[h[hi3F "8F( +h F h FhhB##hY?uƒ4-OFK{F+n9O#FF"F%Fi.I !h.BF"bh_# ##URFIhF!z"zJ4!7y/ /h@JI U !h.F:F6hWFbh_# ##U !.1(ܿOzs]C(FH@B-OFii.s{{uh4ikh(h4h (80H33[h,\#y;+TOQ..0Co#h"AF[y 408F(9 # F#iiC()# F #i7(+# F #i+(# F # )j(,# F #ij(gJ# F #zDj({aJ# F#zDj(m[J)# F#zD)k(_ h hQJI# FzD#ik(FFkq@ F(?<;F"1F h8kqP F(?+#"1F h' 3#"1F h3#"1F h h` h h#"AF h#"IF h 'h8F" 8F+( hF~mhF  #"IF# h'@8FG+1 q i[khñk@hlR K"K!{D K{D K!{DK{D4 ]lޗ7Fo F"h#YV1!3AB!8n! h0 00 O3"O,2#FB@h*O30)F)XhpGO0pG8FF F!F h 8h! hw(*i! hp0 8p FF! FCF p(F(j3((F"!(hK(!F(F>(2F!(h>(Тi!(h""2(ch;+4  ppF FFF F pj3( F"! h ()F F(2F! h0 p8F Fh!h 8*i! h((F8!F h0 8pFKh FC+.?+ +C;+@怃h"O6zk@{A+&F+D+E+@΀&H+I+ &&&&&"hF( Fd("! h FNP FBѕ Q^FBѕ PYFB *jnjFiO6"! hZ(p( F"(i2F/zgz2BB0k"P3zB гzgz2B4"! h)(? F(8в! h)F FH&"! h02F! h "! hб F)F F0 p&"! h(2F! h p."1F h( F( F&-AFj Fh0i  F'( F!@F(6&.F2F!@F(v"!(h(oТh!(h(f:F!(h(_z !(h ` {*v(M2F!(ho(FСn`n- !F(hd(;Тh!(h@Y(0Тh!(hP@"!(hJoj!F(hAȱbo!(h;+i[khx+co#h/ K"[!hh{D h  Ó FFnikhF/; +\ [[[[[[[[&"<O"F"! h(BЪi8'&"&2F! h(4"! hp:F! h@2F! hi3"! !F h"F h`nhn,F! h0 -CF0 F+Kh OO';+J (.C$"'FFD<$FF";n$hn,F<"F.n$hn'F,"F%$O 'F"lH$D1-CBOrBDOO " $O'FF"$'FF"F3i[khx+ +'K"[!ph{DC!0h8(=0;+!F0h(p(u!F" !0h !0hбJF!0h:F!0hp"!0h@"F!0h@F -OFn F-)F`n,FFfh;.AУi3O +FO F3>.ڀ'y(FO FF((#F`"(FFF(F<#F`"jO &ZF}iO UJBѢoB#wO8FiFl&FRFd0F3*+O8O1"(2FB*p1mи?jnO NFF2nO F<&FJF! F&jF"(FO F Fs"F n&O "n&O "!8h0*F!8h2F!8hбZF!8h RF!8hpJF!8h@BF!8h0 7F Fn!h n(h3Уo"#YV1!3AB"!(bo!(h0 0-A FF! FlCF]ch"+'#j!(h+cjOR"+OS#DiD(E/!(h"r(7FE"!(F`j3((F"!(hx!F(F:F!(hmi!(h""b8ch;+4  pFF FCF p Fc(j3( FY"! h6()F F@(2F! h)0 p0F# Fik ik Fu(3 F0  0p#FSj%jYkl( -kh+bjB-h- Zn*Yk0FW($jdch+Zn*Yk(F2($h30  p-CFFFFF(Fz 8 ' F( #!c( ( a( "0FZF(Їe!0FtF(D`HFt#F@FE( F-AF#FFFF8;F2F)F FApFF%TchZy1Fi4D$h(Fp-OFԄFF D O  iF mH0iH0.uKF"IF8FF(k"QF(F (b0C`  0FF(FCy1F(FuF(;(F(1!(FF()KF"!8FT(ck [mGCF,"QF(F 0FF((F:F(FD!(FF(0C`(FF(F (FU(*F HFG(ۀ*FAFHF?(Ӏ0F(ˀ# ˍ[F (FF(F(FF(h*F $(#"F9FK(F{D3F(#"F9FK(F{D3F(KO "F9F(F{D3F({ckhm ! hIF yD#"F8FFйdIFKF"8FF([JF(Fc(UКK2F!F(F{D@(JFO(FP(BВK2F!F(F{D-(8O F !X O iX ""ˍSF (FF 0F! hc!F h^IFDKFJF8F3F RF(F(mK2F!F(F{D(IFKFZF8FF("(F(bK2F!F(F{DF((F!F(ck mGbck mG(cck mGhcck mGcck mGcck mG(dck mGhdck mGdck mGdck mG(eck mGheck mGeck mGeck mG(fck mGhfck mGfck mGfck mG(gck mGhgck mGgck mGgck mGck mGck mG#"F8Feh`(?0@FubsAA8,4NQPllpGBhKhnnpG-O۰ H FhPF (ˁhF( hHF( hXF(:hF(BhF(2h8F( xh@F(%h&-Jkh+Ыhy*?h@F(wl*4ZyD:*. -- -F@F FF !i(h#h  PF HFn+8FXF(@-h&ehh SF*FhIk5(.h 2hIkh)("+h hH#"O3Ikh( +hHh%jI 8 PFyDHF3h[Bdh& 0 O3*FIkh(ހhjh% *FO3Ikh}(ʀhRP(8F(W 4 `M=% @%h @ 9FHFgHFF`!hoF(F`PFnI {yDFFXF(yСhO3RFIkh(kXFD(ehO ^F @ (?|9FHFPHFnBPhjEbhj(ChB@hbFF6FZO3F =*Fh0#IkhرR0+h[k$ihRD!H" # F{K{Dj "Sh[kchh*`O3Ikh(р+hh3#+`QkiRjRkcAF0F!0F F0L0*hL0F(`0F0FF(FVI (hyDF(` AFPFL  F0F0FF(FF"0F0FF(F:I(hyDF(` \ !< F0F0FF(F*0F0FF(FI(hyDK(`FEF~!0i !F0i5f-6hhSkiSj[kk;h Dchc h+ZhBF([W7Ch++уh[kkhlhSC#i2*il DdiQn DSfh pGFFh !FFxFG```Eaa#aa  FFh !FFpF`$G`a`Faaa(F FCh FFFFFE`@8 pGF hF +hh/`C +i$yh*F<0F#DB@yh*F0F?hD F+h hikS*"@@@0 FFFq:FF1F(F DdB8 @0 -AFhFF$iű:Fih0FUEE3D Fih:F0F-hDO08!9LF|D=(i6K{D`#C`x*""`"A!Babd.JAb !b!`aabccCdXd(JXd(JXe'JXBe'JXe&JXe&JXf%JXBf%JXf$JXf$JXBg#JXg#JXg"JX !JX " JXgJzD JzD JzD JX JXc " 8f4s`hLXXp\%'Al|-Aذ FF!F2FF$p F;F*F1h$F()hYF FX (K{DS 0B K{DS 0S!0Zh hpG pG~r2  ( K{DS 0B K{DS 0S!0YhBh 0pG pGNr l#`HxD,0pGr@`HxDcppGr( # pG pG pGFpGpF#(+ ѠiV+.٠Z+*d8%2+ f%B"hh5!+ѣi+hh.+"+ѣi+h@ F0 p p ppF-F@h@F hH [kmG"#FC,Bj2C#2FFh``( FpsF F ! F(! F(3F`h*F@!F)FZ FpFF" F@hF )FE2F!`hF( 1Fb(F5"qhhh`(2F!`hF( 1Fb8F"qhhx`(`h;F")FF()F F1P!pF yy@hDF(;iFC`h *hC`phF(!ph!(G`bhjahXk0Gj`3 Fbo -GF FFF [RF!@F`F)FFHh*B4F2F7DB ,2,BFQF(F0 8F F 8**!g F(`h")F6F()F~F8 F8pFF F pHhB#"F!phF(#*FFh``(++#D!B#-b5,0 FpFF!F*ZPh(!F"(FF(M..).G"F!hhF(?f#"-0#/ ",`.0 #",0#-0.0/0#Fh/``! (FTF"F !hhFp!Fhh;F"1FF8!F F(F-AFF)?*="ZF(7"F!xhjF#"Fhh`@#&,0!-0.0/`xhFh"h]`#Fh``X#,`-` F.`/0 pFF@h!qF ph0F[k[mG#b"!h``( Fp-OF FF-"ryDiB.@jj*h/ )F" F9FF FQ*P#&&GGGGGGGG[dddddddd")F F)"F#hh@r±#!F`h]F(4#"Fh3p`(*2F  [#hS" @r*"'!;F:F`h0F(#hFFh`(h[khl+O:F! FF(F!`hdF(兀,p#'-0.p)F/pBF!`hNF(υ#)F,0#-0.p/p3F")F`hKF()F1FCF"`h>F()F5F#h[l@! FF(,! FkF(! FF(,! F[F(2F!`hF(y1FR"qhh(l#,2F,0-0!`hF(Z1F3"qhh(M#,2F,0-0!`hF(;1F"qhh(.&:F,!,`-``hF(9F2Fyhh({O,:F,0-0!`h{(9F2FyhhX`([O!b, - :F`h[(܄9F2FyhhX`(τ;1Fb,`-``hF(hIFhO,0O-01F`hF(hQFhZ`O,0O-0q1F`hF(hO AFhZ`#-0,Y! FF(s")F`hF(j)FC:FAF F(^JFAF F(UF \!X* `hF(H)F' ,-H*O !`hNF(0)Fh`,phZ`-! FQF("AF`hF(AF3F")F`hF()F;F2F8!`hF(1F FF("h;R#p/߃F kIF l#b\!O+FBF`hF(ƃ#"Fhp`(1F`hF(𴃃"!h jb3b`hF(?/33T#0C`Ahapu((!sxCsp`hF(F`)Fci``i0 i*F1F0|(@Wqj#[J!X FzDDj<(a! F(W#"FhVF(Ma{XF3T#AF#(@O [#"+F`hWF(.G`F`h+F(%j"b3bC DIDa !`h-(!(sxCsp`hxF(F`QFci``i0w iRF1F0(2F!`hfFB)(1F,"hF(ӂ  "- "ho(ѽYD|c.1FXF(!`hF(%O F`"!`hF(3iFhC``h(j(j3C b*Db E5 -!`h\*FF(o)FH ,!`h*F(])F6 JF!b`hF(L#G`,0"9Fhh`(?O *FSF8!`hZF(1)F !`h*FF($)F,"h([F"1F`h( 1FJF!`h}F(O G`,"-9Fh(*F!`hc ()F& ",`-`Yhh X`(с"YF`h[F(ȁYF*F?!`hF()F1F`hF(G`RF9FhUh`(#)F3F`h(#ZF)F#`h(JF!`hF()F_PF'b"AF`hF(uAFN"`hF(hA1F+F"`hF([)F4KF"1F`hF(N1F'CF")F`hF(A)F2F@!`h[F(21F !`hEF('G`F#*F`h*(#1FSF`h(@"h Fh"Aj"h=kOh@@  )*AhnfDDOAh!AhAAhBAhB1AhBQ>F!03R#n`TDDO R#!R#AR#BR#B1R#0BS#O #  K B00F[#FOcEvQ#P#R# FP#BBOE" *rFA# BA# 31F FF(Bл@ FF[F*@EFOED 1FBF FjF(? 1F F~Fޱ a0Fa!E5F8OE2ѻ1F*F FF( l1F  FF(#%OO {2F! FxF(2F! FpF 5F1FBF FF()FRF F F(OE F1F FF(/Д71F FF(й)F FF(*F1F F+O5F#Z!d!:ֳ-Oհ Oiq F(0 ()^O m l@FXN((<8O {D(F+k+ F(L!WF(F(#asF?F(ԁGc(ˁ|!+ (Á!} b(E`]b4+ O.r QFau#`c` `[j[k#aQF"4p (F(`h&iF(`hF(`hF(|O~SO d0'O|R#( !,p(,pd bbBf  ```h0a(K3i3ih`h`(:hhhB(hOS'0e3iS'0f߱3i !S' S 0c`h(3iS03iS 0C`3iS0X`7,fO HO ~D6@F0"8Fb00k0V,ah|;h+္VV ,#h[h[+!"#hF(ɀV,*F`hF(#hhch3# 'Vc# sF`h8(𙀇e!2h drh2D"`hKF( C`кк Ѡhh h8F  67-n(F(b8(F([4(F(T<(F{(M(Ft(F(Fm(?(Ffȳ(F`(FZh(FT8(FN(FHر@(FB(FF2F !`hoF(1F#:F4!`h F(1F>F1F F*F1F#cU FHxDpФFFFFFF0FF "F9FtF.`(Fl`8F FFt%``` F8KhKChX @n#@&@O2D^B ?F ?`EF/ 0F(FD#@Fl@P-AFFF%ijXk"h2"`jXN~DBfhO26f```i2iaV&i`i`aoP#FF`#`##`c`O3aaOqaa2 a0 F~#i@hFu#iX K{D Z-AF"hh3B h&`i7i@1# a>c`#`O3``aak- FXrhhhpF.!iNJYK~DB**(ТiBhaiBhahPh`hB"ihO`JzDJQ"Z`O2``chDc`p p̢!hO3`2A`aai @hpG`iC`pGDhch!i[h `ChiXhC` `FA`pG@hpGhpGBhShihB`F pG`iC`pGDhch!i[h `ChiXhC` `F F#W!ο!Ͽ7FhFlF FF((F( 07FhFlF FF(F 07 FFhFlF FF((F( 08F F0)F F0 88 FF 80()F(#b#` 8FlFFر(F@;F0@(FTF(F( 7FmF< p$h F080]K^]KpG80!Fj{F 8j0:(j3(%` Fjb8hpG02sFt!RF(1%cy"y%eoEcqfO6"qdbe&fcy%`ebdeecqyfeqp0ep0 Fp0F#a0#F #F0a˄(Fp0F #`#eab bECq00F#bF# eab bECq˅ F00F#=a018#F4]pFF$BhS$++'+ .+j+(4 p ppFF$BhS$.+j+(4 p p)!11?`#a`C``CaaabbceKCf!߿-GFF(FFFF !PFF(#F``Fh`8Fg"F1F(F(нh}!PFF(khFC`@FOF-h.F0B 0S&0P}khB !PFF(D`(F--h6 FB mmBڀkmBډkpGp F iFgF0+ia#*iBhR#hB#3!F(Fjbjbkncf#h+a`b#b2ha3`i`h FphSZhBh`pGh+[hBh(ܻFFFFF<!8F`FF`!F(FF0 -OFFXFFF!FD F(@Ā!FXF(#/+#++O O!F@F( F( F(!F@F(љ06#F 9F0F(2F0YF@F;F(}h9F0FS*0#F}(n2FYF@F;F(b  cE#.+W  AFPFj+PFF(Fhhi*hZh0%+&+`0jGFXFhhi)hYh0%+ &+`0jGXFEтB*F#F9F0FF%(F-OFFF(FF.(M !F0F'(F09C;O 8 0S 0ji)F0F#FBF($BF)F0F{h#Fȱ?h/_igBF)F0Fh#F@?h 9  p*F%F F @Df4`ppFFB ىFFPbh`&f pp@pGhS!pGhpGhC! pGFFCBmF-%Fxbh%`c hYaB#pFFCBmF-%Fbh|%`bhHh `c3c" F!tap FF"!"Fi ha`hT`pp FF#!"FZ ha`hT`ppFF$!"FK8ha`hT`h`p 1!TP#&"C#D`bF F&)ph oFF F Fr4"F,1F Fh'#(F`'A#ba#bHcbrh F" F%!b F)! F*! F'!#bc-A'F+ :F"F(!,F"Ph` h]` h`" F+!b" F,!D` F0!8 FF1!"ha`88D\BF\A"F h`8pFFE!"F(h`h]`h`p8 FFF!"sh`h\`88 FFH!"fh`h\`8pFFI!"FX@h`h]`h`h`p"K!I" Fb!Ch"a`8 FFa!"6ha`88 FFc!"*ab8apGKhBxC` iaKx@cABppG8" F-!F )Fh` F8pFF.!"F0)Fh`b FpFF/!"FF8h)Fb`h]` F%+Chh%+!+уi;+"+уi+#+ pGjpGi8F*($kB hS$ 8(4 8&XBXA8B -"b#a#Ch`pG# cc c@c`pGp FF!!"~F8-abh` FpF @ڲb"b Bb@c`#BjFT3kD ) ڲb"b Bb@c`pG#VP,ZT3+ ڲb"b Bb@c`pG#VB23+ pG#BVB3 pG# cc c@c`pG F2!Fb F#!BjFT3kD ) ڲb"b Bb@c`pG#VQFT3+ ڲb"b Bb@c`pG#!  0 3+ ڲb"b Bb@c`pG#"FYV1C+pGB$ )CB(+рiV8(  pG pG-GFFFF*`+aQh[hii>D2FF "F!PFF(*F!PFF(!PF,F(h+++O h]`#FB?3;F"!B, ,,3F F FA#VBT3+ ڲb"b Bb@c` #V*R<3+ ڲb"b Bb@c`]DFB;?O3B+2űhYn[@FnSba"n(WѺ!Ff(Ѳ@F<(hBBh&S%0iBhS&00kShBYh Fh6ji F(wqh F(q6h. Fn(g5 dn3!Ff(Y@FnSba"ni(N\il@FhZba"h[(@$h4iBhS$00k[hBnHFYh"hji nHF(ahHF`$hn,љnHF>=2 FF!F(FHrk)F F F(F FpJk-OF FFFFF` E*)F@Fo@0(FG// ###& BhS&HCFRFIFHD6$F `8F@F} b`b8000 𵅰FFFjn(h1FF kj"1Fj K{DO3kj"F9F(F3kb( Fd-AFhF!F0F.Ff` #0Fc`%6i3aij/yh FGF0F&?h(F𵅰FFh!F0FFf`Gi FGF0F#0Fc`%i3a(F8 FP!FBE$U$88F Fh! E`ch``` 8-OF hFF F0J#h{:F `F@F %3iBh@FS%YFHCFRF!FXF(5#h ;I'0sFbF mFChhF(F@64(F(F1Fp-O FSk Fh5OAF  F)FF()F F()F F()F FF(AF F()F Fy( P O!FPF<'(2FHFSFS(FO ; 0 E7`   ` "C+ C+G+V+  EFS+ B PF(?  QF#(S` S; :# @ #AE 8F FPF (BI< H D#XF(?, F)FF(?!T!``(?chrhZ`shbh `h 0o(?`h40g(? +`h!`hOW?K5E%7*T!(`(?ܮ;h+ ##`+hV( Z`(h 01(?ʮ(h40)(S%057B:hV%0T" ;hV%T# 0(Ѧ:hT%0T" cT%k40(ї#I< +(FyD@# F(?,@(FyDOs F(?ԭB(FyD@% F(?íD(FyDOs Fp(?F(FyD@' F_(?H(FyDOs FN(?J(FyD~@) F=(?xL(FyDmOs F,(?n\N(FyD\@+ F(?]<P(FyDKOs F (?L R(FyD:@- F(?;T(FyD)Os F(?*V(FyD@/ F(?X(FyDOs F(?Z(FyD@1 F(?\(FyDOs F(?l^(FyD@3 F(?լL`(FyDOs F(?Ĭ0b(FyD@5 Fq(?d(FyDOs F`(?f(FyD@7 FO(?h(FyDOs F>(?j(FyDn@9 F-(?ol(FyD]Os F(?^|n(FyDL@; F (?M\p(FyD;Os F(?<@r(FyD*@= F(?+ t(FyDOs F(?v(FyD@? F(? x(FyDOs F(?z(FyD@A F(?|(FyDOs F(?֫~(FyDOs F(?ūl(FyD@E Fr(?P(FyDOs Fa(?0(FyD@G FP(?(FyDOs F?(?I(FyDp@I F/(?qI(FyD`Os F(?aI(FyDP@K F(?QI(FyD@Os F(?AI(FyD0@M F(?1I(FyD Os F(?!I(FyD@O F(?I(FyDOs F(?I(FyD@Q F(?I(FyDOs F(?᪷I(FyD@S F(?ѪI(FyDOs F(?I(FyD@U Fo(?I(FyDOs F_(?I(FyD@W FO(?I(FyDOs F?(?􁪍I(FyDp@Y F/(?qI(FyD`Os F(?aI(FyDP@[ F(?QxI(FyD@@] F(?AqI(FyD0Os F(?1jI(FyD @_ F(?!cI(FyDOs F0 7}0~`Q~7~~~}}}}}}`}"}}U|f|N|2||{{{{{0{({ {zz6zznzy~ybyyyyy{y_yBy(yyxxxxxcxJx1xxwIwwwlwPw5wwvvvvvvgvMv3vvuuuuuu{uiuWuKu2uuuhpG-CFF'D&*hhD(F,(F"!(u ( (I (GY( (S (>)(b((#(䀠%+߀T?(| ;(N:(v.(H/( {(n [(ɀ](@g^(@À8|(6~(\(Fh08 (3`@P$(F4 ( ( 8(٫h;`t` |(FB ( (Ыh;`##..s`+(F=(#s`]B;#s`<, +,-,&,.@iK^,&|,!>,%@gA(Fu=( #s`<,@cOp h<,Op@e3` F%Op"@k/,9/((FO ((*(,'(FCF(Foj KF !8F{DS h*h;D3`t`_/( .?q{K{Di*_B_Ah;`$ A;+٤0 +_,.,vѫh$'F9F(F/`)_CNY8 A;+@_(0(𘀠1+@.(' @A;+@򠀠0 +@_(Nї X+|.(E+z08@ (x>0 +u.(v @0 +q OtE()m0Ot +i-(g+(d08Ot (b A;+[08 (X$(F\FCF !HF]h;`+hKD3`r`@B F< :Op7.?6$:h;`? 5(F(Ж(F''@@ '@ @'Ot'''4{sqj0./m,,,,,,,,,p,,,,,,,,,,,,,,,,,,,,,s,,,,,,,,,,,,,v,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,y|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  !$'*-0369<?BEHKNQTWZ]`cfilor  #&)ux{~HxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGHxDpGllllllll lyQmllllsl|clllll]Al=l:l7l4l1l.l+l(lllbllll%l0lAi4?i?i?i?i?i?iBiDiAi@iڻ:i8i} ,i&i*i*i*i*i)i(i'i&ihii!i%i%i$i&inhnhnhii5k3k1k.k+k(k%k"kkhhhhhhhhhhhhhhhhhO hhjhhhhhhhhhhhhhhhhhh;j?jIjSj[jcj iiiiU Z Gj5isFllFFXm: F_)ЙBkh!k8(*kjB K{D H( 1x_)-kh !k8(*kjB J#zDV0 M}D (5 (pl<F h FF +hBF iN qh(Fp`(6hh{h,F(2Fh(F`(8FZ`Ckh @E FpFFF##ˍ#F0hFh FjF h(F F p-O"F@hpchk/@"c&|5O( D"{D 0FYh p;F hF(zj(r7_/5O&{Doc0F"!h_F(m0'O p HFg0j0X[F FSF(IQF h$(@bk HhRmG @bckEU(F0F"9Fh F(0O BF9Fhj00j0F(0j h 0yD0PFg'05KF F(I(FyD!CF<@Arx0(Fhx0i00Fj0`"AFhF(AF"hF( hF(AFBFhF( hF(O !ZFhuF( hF(|!ZFhcF(q h(j!"hQF(_ZF hF(W!ZFh@F(N haF(GI X XFyD#ˍ+F F8(/I P XFyDm#SF F!(I H PFO yDU3F F (I @ PFyD?*KF F(送I 8 HFyD(CF F(Ӏch!kh8(ch !k`8(3D3F F(ѯ&eM}D;F F("5 F(WK x{D3ck"i+##!0" hb0F(nHI # %` ayD8F"!hFF(T 0 &X%XF8F0b0#*QF h$Eb5-O`F h3FwF( kKhXI8FyDT"ˍ3F F hA +ޭvD bbbҩaaFi F? ! ɂO2ai? !ɂO2a]K F]KpG8Fi F3) i8i3 a- i8+K7F{DiF(FڰBڰ ܰ<@B+а&ݰ#1.а+а ڰ"ڰݰݠp( аа (k8yCXBXA 0Fi3i ai3#ia F FW a i-OF F*y+@߀h(sM (# }D+%Di45C^ F `)@0 `U F+ F(sk[h++h+kh+shhke(O #OFh2*  O O '3+OEq#  # S +# D:F"F"!":F!:F! !:FhnF(F:F0h-"hbF(:+E ## !F 0hK `;3#0h*h 7cU)F FXF`hh$F0F$F8F zK{DP F(?! hF(?n`hF(F"!hF(?^ck mGbn`]! F!F hF(?I`hF(F"!h(?:h`@'ck2PBPAmGb6! F((F`hhF0FF(FGK{D FF(?! F)(F`hhF) F0F9K{D-?l;dU! F](F`hh~F] ~F0Fz*K{D)FCF" hF(?ϭ`hdF(F".l(F;d \d\ \[[[ZcZK[PYYXlWWWWWWWVV%WrUTdT&TsF>F!(Ff*(/(8&&!(F5l3odhhhOcFJ!K F{DB (FF(l!F(h:d2F\Fh*hhF F FpQSsFF!(F+(-(8&&!(Fl3odhhhOcFJ!K F{D (FF(l!F(h:d2FFhhhF FN FpRsFFX!(F>( <(@&(о(:&&&!(Fl3odhhh^OcFJ!K F{D (F}F(l!F(h:d2FFhhh;F F FpRsFF!(Fx(н(8&&!(FGl3odhhhOcFJ!K F{DT (F|F(l!F(h:d2FnFh`hho6{DD! F#I! F#+`#J! F#+`#+a.`hhNp6{D#! Fr#+`#+a. `hh;P6{D! F_#+`+a.`hh)06{DF !(Fn! FH#+`! FA#+`#+a! F8#"+`! F0"#+`*a)F h! l8(z! F# ! F#! l8(f! F # ! lu8(X! F #+` #+``h! FF`hhF8FF0F@5{D\l[`hh,5F !0F{D! h(Bl!`d F@FBF4{D1F F@EF`hhvF@FvF8Fr4{D FȹhhvFp`hU4F !@F{Dh! Fj{(F`hh7F{ 7F0F3T4{D! Fw}(<4'FF{D 44{D @ XFZF! F( @`h1F F"HEF`hhFHFFPFK{D FIhhFh`hF !HFh ! F[( ! F FF(@Y`F  ~hhF(F`hhKF$!{D1 QF htF(& 7Cb `F! F,(O F \;(F`hhYF; YF0FUK{D"F !(F! F}()O! FeѠhhFF``hh&KF !8F{Dkhdi+9 k{hhF``hhKF$!8F{DCh< +F hGF(𒀖 k(l+hdD F=1F FhhF``hhaKF !8F{Dvhr1F FBF`hhF8FF@FRK{DB kBy !FBBq*FBi1ɂiiaCEK{D)F FhhF`hhb:KF !{D0F h)F h ! Fv](F?`hhBF] BFHF>'K{D(FpNLNLMM~K:KKLxJL1L KJJ}JFIF.IEHEGCGFZ`FdBEAsFFx!(F0( =( Ъ(A"& (Я(;#& &!&&!(Fl3odhhhOcFJ!K F{D (FF(l!F(h:d2F(FhhhF FW Fp@F!F((F`hhF( F(FiK{D! F@-FBO F/BF`hhaF(FaF8F]YK{D! F|)(F0F`hhGF) GF(FCMK{D)(F! F])(F`hh*F8F*F(F&?K{Dl F2F(k"h0F8FhX(Fa F!F(Z"h0F'F(l;d! FJ,(F,l3od`hhOcFJ!"K(F{D.4! F,(F`hhF(FF8FK{D! F)(F?s`hhF) F(F K{D"F !0F 0@??~?)?>>7FF8$hhF FN!(F,(.!(Fl3odhhhxOcFJ!K F{D (FF(l!F(h:d"F(Ѩh F0C>-GF(s F((nSK {D0F2F! FF(Y`h@-)FF FTPEF`hh!FPF!F8F>K{D! F<=(F`hh F= F8F3K{D"F !(FE F Fȱ k]ȱhhFP`hh#KF$!0F{D% 3 F9/#CF hFF kFh:F1F h[Fh`hF(Fe(F8l=<=@`;-OFF{D @  ` PF.! F@!!B F@΀! F@B@B а% ! F%6! F%0! F#lli;cl+`hhL:F!(F{D #cdIF FhhQF(`hh/:{Dx%! Fw0ܰ@#B!аO! F?!)а4@%B>! F.!! F'!ܼ! F !ռ! l8("! F!Ǽ! l8(! F !! lq8(! F !IF FhhF(/`hh9{DF !0F¼@B@! F"kjB `hht9F/!{D3! F@)BX@ HDIF FPEF`hhvF@uF(Fq(9{D_ kF y+УhhoF(ǂ`hhM8F.!{D}+Cy: * > * *`hh28{D>+YF@Fr F``hh8F.!0F{D^sy#hhF(v`hhT8FQ!{DEC@)Fsq F@,()F Fe##RF! FF(! F(@FB&3h + /@ hc(@ރh IF FhhF()`hh7{DIF F@EF`hhF@FFXF7{DF FйhhFx`h~d7F !XF{Dh! F((F@c`hhb07{DF.!(Fp  P `hI Fp((F`hh=F@F=FHF96{D"kjBУhh?F(؂`hh6FX!{Df Fd@-B F6Y)(6{D |6 {D t6{D XHFJF! FF(! F/@FB>`hAFF FPE`hhFPFFF6{Do F!(7ѣhhh`hF !PF!h! hF(H "!  O3PFXF$O ! F[(0! F FVF(IF h:F(! F](F`hhWF] WFPFS(5{D"F !(F[#$ IF h*F( (`! Fy,(! FMEF(! FG)(F`hhF) F(F4{D"F !0F  ˍ3F hF(c k[F F( 3`#jH=GAFF F(3h 3`3F k(y˱y;+٣hhF(g`hhKF$!{D1F hAF(U`hF(FY(F/"h)F8FF(@lhe X7 hF()K{D K{D K{D K{D K{D K{D`h]!F F=( [(J! F| F5F(@A_! Fp# AhhQF`h0F '!PFu# $(# (h] F'F(#FFO  kq(# ع3h+УhhF(l`hK{DD0FO(ѕ#ع3h+УhhF(I`hK{D!0F,(rJ#zD3h+УhhF0`h~K{DF$!HFP0F(JhhFH`hqK{Dh4#SF hFCyC@CqSF kJFQF hF``hSFHF"hIF8Foh\! F,( ! Fg@AF FaPEF?Ѯ`hh-FPF-FHF)CK{D(F68F4*F hF(?`hF(F/"h)Fv1F hF(! F)](F?`hhF] FHF(K{D %i>w?>>9:7>->*>>=f8~;Y=7<<:65P5T: ::*:8:9:G9988511-O F!FF{()F FQ(/"hF8FF( 8F F@! F@!B  F5((9F FFH! F@B! F;(F`hhKF; KF0FG7{D! F@ FB𶀰 ڰ򁃰{@Bа@Bg! F9BF`hhF0FF(F,7{D! F ((F`hhF( F(F7"F !0F{Da F?F(h! F)(F`hhF) F0F6{D>0@F7( c"! FF(=0! F! F0@F( c"! FF(0#)F2F hF(@͂! F<@FB-@ B@;n! FF`hh\F(F\F0FX5{D %k(FF( c! Fm((F`hh:F( :FHF65{D FF(! FL)(F`hhF) FPFh5{D!"c FjF(q.{/6!"F !(F #k0a(FD'&-OFjhFph 0`0Xb0c! F(9F F0}({ByhC;! FR#{(mѸ0b+g kFp0O kHF-h-Di+HFj# ˍ hkhrFb(Ѡh|MhhEF``hh%EKF"!0F{Djhc! FA}(/(,0!8 F(k0c! F);(F?j`hhF; F(F*KBF !0F{D0@(&O j(FH(FH(.Ѓ#s CE}+Cy" ck[h++Cy"Cy"bE CyiEyCqCyfECq`hF8F`8F l, %pF!`F%0!`B`J`O3aa#azDCbBabCcEdd0Fyb p1F(Рjb( c cc#dp, -AF F FF*+&cB hCFh8FR& Q&ر6 Hh,5tU(,{hbh"Fl ,G{h[nG-OF F *@>!;+:8888888888I#I#hh, + DDD#*+@ F(hjhRjhS"#&+@jh Khi1FiFh)Fkh,{`#B' 1V3*jA,#&+@Ʉ`h0F mGAFF;F08F)FL#CEIFhh 30RhlF[FGX`3hh/^h.i;+;&+@m3&+@gxhvFphr0F mG+({hh+ѹshh+,١E(FIFF()F,6V(,0zh"lEKF8#FFF A+)FO 3cE  CE(CFBE(BFljjhhGXF8F(0F(2F9F+FPFViF+hhv FMF()Fc00FmGb;&+@3&+@ChjnGFhhFF%F()F9O,1,F8F()F+hh/?Ю\h,h.yi$+@w;&+@q Fs(k0Fm(e0j[nG)F F%0FUhR# 3B&*Fi);P+BQQQQQQQ6QQQQQQQQQQQQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQQ@Qh5 0mGFhhF^F(&)FsBԂ i`h6 0RhlFCFG0P mGhhPhFkhFi!F({)F&6E[F8KF 9 3B  2FB(3FNE(JF`hj6ljFiGhhZhhXhpFXhkFXhfkhFiF())F&E[F8KF 9CE8CF 3B8 1F  B(3FNEF(IF3B(3F6jljiFj`hG0 mGhFjh*Oxh khirF(́)F#B 3  0lFKh0lFKFRhi`hG3hhphFhhF2F()FH# qh,,lBFiGhh^hxh@FhhF F F(d)F,6V(,0zh"BFl,,iGphh^hxhwkhFiF(:)F,6V(< {h,l,JFhR# 3B&*7hhGFF N))Fhhk+Q`h/(LѸIkhh*4њh'h>FiB  O O EFE0njhh G  mz  G6D& j6hh0nGFEx`k+Zih h+Vbhh+Rѓh& hihECF(;FJEF(KF7FOE𬀳 2% EE+B B"DjDbB    m   C m G57FDD$&FFEmh7FYXhw OE hh7 0jnGGEӹF4NFjy*A}*+K{D +K{D + K{D K{D K{D i'!h  """""o"#pFhFi; +^7]QTW]ZG:. 7IyD(e p3IyD.2IyD1IyD.+{0.IyD-IyD0+IyD+IyD(IyD$h(%IhyD1 IyDIyD IyDIyDIyDIyD(.+h;+ I2FyD0 p pffff|fnfr"8Q"B"Ѱh * +i,`h$h  -OF F@*@ȀA; +] O^}[ }[ FEhHhhhg+ ;$ i2!h{D3+4F.:(88N!2ih{D2hhS 8>!2i$h{D$𛻳i}+phP7T!2i$h{Dhh/?PyhphPFyhhi qhFhi7JF !@F{Dbxh(?+7'!2i$h{DQi8iFP|74!2i$h{D@;}+ `7V!2ih{D1+ L7V!2ih{D%+ 87V!2ih{D+ $7V!2ih{D !M!\!("z"#"#!:!P!d!="Q"!#!  Ch Y O \ S S  O ;h*+ ѻhh+0*@"+\;!2i$h{D4AF8FF9Fhi 6iAFFhi$;2F !HF{D8FFP;!2i$h{D8FTH:!2ih{D"!(i!Fp`(hoAF8FF9Fhi 6iVAFFhiQ:2F !HF{DT˾;h;+ :!2i$h{DE;i+ h:!2i$h{D7"!(iFp`(sh%"!(iFp` h9FbP:!2i$h{D AFphR(K0+0+ 9!2i$h{Dh;h +Fѻhs`ik[XF#eHF#eHFFi,nG( 9!!2i$h{D=hBx9 !2i$h{D.XFjeHFe(?#4Fe+Fѻhs`ik[XFS#eHFM#eHFlFi,nG( 9!!2i$h{D}hB8 !2i$h{DnXF!eHF(?#4Feս;+6;i+3"9F(iFp` hH½HF#(?􋨫i,nG( |8!!2i$h{D3;iBu`8 !2i$h{D$P8 !2i$h{D04Fs`h$@;h+ 8!2i$h{DuBFH7!2ih{DcP7'!2i$h{DS(hiFp`(h>jih +!m(Fjh3h~H|7!Fh{D2i hjih+!m(Fjh3h\H<7!Fh{D2ih~j[y>+&!m(F 7j{D1 jh3h/H6!Fh{D2ihQj[y>+2 !m(,Fj|D1 jh3h6!h{D2i j4 1(hjhiiFp`(~Yh j/4Ҹ;hS$0;+/0[h#j4hih30+5{D5{DJF5 !8F${D+(F$$4b9ihiFp` h;y+3@("b3jaf;+!m(Fjh3hHH45!Fh{D2ihji`;+!m(Fjh3h'H4!Fh{D2ihIij;+!m(Fjh3hH4!Fh{D2ih(im;+!mv(Fjh3hHx4!Fh{D2ihiu;+>M!mT(F~Ejh3hP84!F4F2i{Dhcah4F\'"1Fb\3V(?*4FN?hjh3h@K !h{D2ihhjhF(?IyD!(?K{DDKDD{D,]jB8Fx8F(?j8F1(j8F1(?ЮIF8F(?ɮ0', " (F(iiHF#k8FEYFQF(?I8FyD(?$hI8FyD(?h8Fh"F(?h 8FAF@F@K!h{D2ihphh+* h*4F*њ*i+ + h;+i+$'FFGEs0ҜB%rhhhS$0*Yh h+юK!2i$h{DM h*+@𫁋hh+@F4DK!2i$h{D2B}K!2i$h{D'sh'isB, hahS'7Fhi 6iahFhiDFhK2F!PF{D$h$$4F4F4F4F h4h6(@VK{D69i iXh4h$xOK{D%bj{j#;y+ h4hбEK#!2i{D"F9Fࣹh4h@=K{D2iW!h' h :F!FXF(~h$`d`?;~~Kd\\[J|trkje\fiefbVX:A:O Թ0h+AF8F`9Fhi}Fp`(~h :h0B=*%;i+3#+ AFhiaFp`(~ūhw0+ 9FhiPFp`(~hf9Fhih6iUAFFhiPlK2F ! F{D$S*:i*8+u3#+AFhi Fp`(~h6*`+^0+>9Fhi Fp`(~oh!hih6iNK !2F F${D>+#0iB9FhiFhxF (iAFp`(~=hihB.9Fhih6iAFFhi0K2F ! F{D$M9Fhih6iAFFhi$K2F ! F{D$43#+AFhiF h$$h(iiFp`(~hK!2ih{D ,? K$2i!h{D F #4)mF Fb+F %cB hS%10F(hQ5#b+ !F0FaF(0F@ӻ F-CFFFO ;hh *;hh *Ji.BF1(FFh$=6hh(FF(49hhiF h4F)`8` F0chh*i+K! {D ijnG(` K! {Dh$$ Fn-GFFdF%A+.  | \HFKHFJFjMjݹPFEF(jh3h@K !:i{Dhhb1F(иi05F(F!sFaa FF`aaeh !)F\()F|(hiai#iA(3Fi)F F@0 p (@  pG  #``Fh` h;0Ȃ#hXhFF#hh#`8!FjF hk F8#C`j`b 8FhFF!j#Fx``#F'aF pk F &K-CF F{DF#hZ +O2"`Ѹ}41F k (F IF k| (F `иO2"` IhFyD;FFx_-A$ OmFO Dv h4 , bN-AFFF")F0F33hF+(-(~(!(")F0F5*F1F@F-,~,+,Iа@ E@BCCA')F:F0F((:F)F0F*F1F@FF0hP:F)F0F)(!@B)F"F0F:F`)F0F/`8F (` F-C FFF+hF+N"AF(FF+h+E*/?"AF(FBF)FHFn*/F//DC)$@,qqpp,..DBF(Ѐqqpp,LB F+h+Ѻ//%/ F-A FFF#hF"9F F_F#h+."9F Fg:F!F@F#h+. --+-.(F-O FFF#hF˳x"1F F2DF#hsos+)"1F F62F!F@F 40 SFF!XF#h  E +"1F FF(F-A FFF+hF+2"9F(FF+hS&<+&"9F(F:F)F@F>.м. <.фB$$ BԿ$$B̿$$B$$+h+ F-A FFF#hF"9F FF#hӱ."9F F:F!F@F.+]B]A-%#h+.(FF FFF#h"1F Fz&( "1F F2F!F8F@(FF FFF#h"1F F\^( "1F Fg2F!F8FE@(FF FFF#h"1F F>|( "1F FI2F!F8FC(F-CF FF@iO F#hñ")F FB")F F&*F!F@F&0FF FFF+h"1F(F"1F(F2F)F8F,4`$$ FK𵅰LjF{DF#mFL4$*"F8F0FpF!FFK"!{DO3!F F @ F pjFKjF#!jFxpkIyDO31FhF9F$sj3˄ F pF FF !F(+&hFi!F0Fe!Fa)+ kek-*KF!(F{Ds#cb" FF{ ( @(0FBorD_+ kek KF!(F{DQ#cb" FFY (( IyD IyD F3U @hF p  ; -AF!jF!jF%xk #(Ж#`4`hFI+aD<@Db + !F(F!F^Z*@)+/,+&`khFh kfkP5F!0F{D `k#cb" FF ((03&`khFh kfk4F!0F{D`k#cb" FF ((Ѵ!jz'F(FF`G`!F(F tB`khtF(o kfkRp4F!0F{D,(V)(T!F(Fj +>㹾Fop_*7>!jF(@ ˌ.FwF kek4F!(F{D\EFT ( F(0(+  )+ ;!jCF(F*!(F   t cj$!F(F/goqD_/MF(C >; (7 0!F))% +!F(F!F %!F!!(+#QF F>  (+bj`cb!jF(|3h 7`sh`w`cb.3F-\(`P!Fn'J/и03 kek2KF!(F{Dx#cb" FF (Y(V!FHp#F2F=w?h orJD_*򒀓-(˅!jF`k.!jF(~<h3h<`shC#HF(ѝ!jF(0FaF6hFw!jjF(?~j*(?x#@Fk(?o= L FPF"QF(FC#@FS(V!jF(?Odpˎ0FaF6hF3 ~  r  x-OFFFh+@#FK{DK{DK{DK{DK{D 1F(FkG(@1F(F oqZ_* h PF 8!F0Fu(@F(- 0;( 1F ! (+@#"QF0F (+rj`sb+i ` PF Q P PF A8F @(FW; З Oq(FOF*skhXF`0kuk8:KF!(F{D}pkv#sb"0FF (R(OorD+O!jpFpkZ> )Fd MF+h"F0F# 0kh0 0ktk KF! F{D  %|M(-GĂFFDD"9F F #(F@G"9F FFJ8(6c#cb" FF (( F &! F( %" FFFh(0 kekhKF!(F{D$p 4 kWKFF!PF#cb" FF (((" FF (Ѷ0bҀt" FFF!(1 kek!gKF!(F{Dg$q 4 kCFF!PFW#cb" FF_ (((?w" FFR (n0+ kekMKF!(F{D1#cb" FF9 (?V(R#0# A$=" F(i!F  `( kek2KF!(F{D$" FF (?(0+ kek%KF!(F{D#cb" FF (?(+#cb" FF ((! F0 (F_F09F FFk5-? }}o-OhFF+)"1F#(O(+@1F F ((#`OCF + $ap,"9F Fou_(D_(&ckhFh kfk<F!0F{D8`k1#cb" FF< ((𓾹@b$0JF)F F&((F'O O3F")F F)(F(@sop _+OF6ckhFh kfkP;F!0F{D`k#cb" FF (=(9,%RF#  L(@?h/!jF(QёFSFFckhjFh kfkJ:F!0F{D`k#cb" FF ((ckhCFh kfk#l:F!0F{Dg`k`#cb" FFk (ƅ(½FPFi;F+OF&ckhFh kfk :F!0F{D5`k.#cb" FF9 ((𐽹")F F)F ")F F FO HF!jF(2QFXF ")F FFF%$)F9xXxG:"L(x"_(*N _(B׽x_(@&0FAiӱckhxFp kfkX8F!0F%{D `k%0F" FF2F kek68F!(F{D{fb" FF (߄(ۼ(F׼' F,<(Є ;F", F(Ą!F3m0:F1F F[oqD_(&ckhFh kfk8F!0F{D2`k+#cb" FF6 ((0O F, FckhFh kfk7F!0F{D`k#cb" FF ((,+@O! F(#cb" FF ((ѣjùckhF( kfks$7{DF!0F"Zh*%ckhyFh kfkY6F!0F{D`k#cb" FF ((O" FZ`vj kfk-6F!0F{Dreb" FF{ (փ(+h"F FbnF(@ȃ kfkX6F!0F{DMeb" FFV ((ѯ@jF(j&Ow "IF F=ȹ1BjyF(P)F2FUF01D#U kfk5F!{DI F%!FjF() p*FIF F'*FFPF813+DBB9Fj( 1Fj`F10F0|1"IF FDOsURFF *05[F1k0  F^kFDZ kekW5F!(F{D#cb" FF ((,:F)F F@FB2bk +,h-4#{D""#">Fh kfk4F!0F{Db`k[#cb" FFf ((ѽ0:F1F FZ:(F2bk +0h1H4!{D  ! Fh kfk$4F!0F{D&`k#cb" FF* ((с:F1F F x IFXFyD (aI0FyD  ckhF` kfkKF!0F{D`k#cb" FF (>(:# F (@ckhF` kfkjKF!0F{D`k#cb" FF (( I h XFyD (MѿI0FyD  ckhIF` kfk)KF!0F{Dn`kg#cb" FFr (́(# F(@ckhF(] kfkK{DOI X XFyD9 й# F(sckhF(4 kfkK{D&I P XFyD F F\(JckhF` kfkxK{DF!0Fe5`k1ck 0h1oK{DF` kfkgKF!0F{D`k#cb" FF (%(!" FFWF(@ kfkYTKF!0F{Deb" FF ((khS kek?HKF!(F{D0")F F&FX kek*>KF!(F{Dpk FF8F+(π2F1F FlF(@ƀ kfk-KF!0F{DLeb" FFU ((Ѯ:.nMjY j!>u=P(ut4IgFJH[=& F &SFF2F9F F01(O0J,SF2F)F F{(D*F&IF`k;&;F`k60S kekwKF!(F{D!F&ckhF` kfk_KF!0F{D`k#cb" FF ((#` FDe` F(Ff(( +#`+WFP F*(orD_+L)F(B+8h,O (1!F8F, + !FPF&!F0r0(+#`#1F F&'+& ('bj`&cbAF F(cjS kekvKF!(F{D)(!jF(?2kIO3 0 C`HFyDϹFsF(H PF9- khBckhF(? kfk|PK{D  I(-hckh}F(?ޮ kfk[AK{D-P.-S!jJF(?Į``"aI(ckhGF(? kfk%'K{D- khBckh.F(? kfk K{D  (-hckh F(?n kfk K{Dw5OJL>4FFF FlchBѣh3`Bݥ` $h!@-%`0F F-A FF(\)]'+b+@тiVj.=Kh+OJ` hih `(F&/j!hF(:E`#2F<h<x9F 0!hF(E`#BFkhc9F 0sl3sd& 'GE hS'!F87#c` -O F !F>F(J#`FC`(F(?#hFuohkN#rh9lHFR8d6h-h'"@PձkhlhHF@hYFDrh4@' ''6h-h/ F AhhC;R#0"@[DB2[*A8 FKhFBOF #bhB"hR# @# 3 `bhB"h3PP1 e`8"Kh\C;, h'Fvh.X-R 6X-<;:F0 -GFkhF FJhB8FF ch!"hFC;R# khOy*hC; R# O| F@Ech'hИBkh4WFB6+hgF_XOC'hCzP"1 B:W"  Z!F0F[(ch"hC;B#P!F0Fu0 -OV MhF Fj2D> C hA9O P!3 O~E qF[@K  bX pQ! 9CH 0;B#FB!hA# 3!F!( F-GFP FJho hF B:Q"`bhB 5Y @I bhB7"h2FRRhKY B I 1!F8F !F8F( FF"F FF"Fch!hBA"2`(F"h!FV`0 8!F[F 8!(FS `(# Fc`8-GFFFF##F`] F rhF8FR^(rh 1hB:Q"" B0h P"2( `FLOP%> LophB"0h 5X Y @ I phB70hF@hKY @ I 2!F8F'( F8 FShFIhBchk`#(`(8bhB"hR#*hB#3 8-GFKh FF+ hh+X(FAF F!F(F((F2F(FAF(F((F%F(zhFsh(FD( {hB#"O FshE3hS.;hS ##\(RCL( FD0L# !F(F( F-OO8 O6C1+F OK1gU0K[0Z '@vEETA$OE PT$OEE lJO3 K T@O;4 K;(qIA:?A0 KcC #@2p#BEs gv AQJO3 c  :L >FpF&< 7C+G 7rS1+{8qL S0+;0t#*s' K1& qS+@ @Q0 CCF F'& 'CC8FETIO0@"H@#I HI DE =$OE$OEE>-A$`FFFF F"#@F(khzhB#FѓB 8h)hP#Q#B3##3` -OF- F F(F"# Fc(-)Fx F1 .) + .+.-.Ѧ-^B^A5&+x0Ѳ ) IF F7("'.+@"'O O ?0ɲ ).+ ) F6F(F "# F(IFBF FF(NфE+jx+*-*Т0 +wit+*-*0:  "#' "#Fx0= -(^ FFO 09 )ؾ?OϬ0  As' K = k 8JF F_(0+x F0F(%F F(BFIF F(/:OK;'].+]E(?^*IF F(S+ FF(F"# FZ(ڂ Fr(ӂF"# FJ(ʂZ Ӂ F^F("#9F F6(𶂺K{ڀK09 "#1F F (OEFkB;#qQ0 CCFB 2F1F FF(F39F2F FF(w5?-Ѻ{ IF:F FF(f o8FnFHFjj 6A*#s IF F!F(? FF(8F"# F(/"# F(& FF(%FIF FF( FF(F9F F7(kh+FrhYF F'(O FwhE'3h"?S'0+hBh#J'0*hS'0h" F(̀YF Fh 0FF(F?/:F)F F( O F:F( F3F(BF)F F(@F?(:F1F F(BF9F F(|{h:hC;R#0+")F F(l :"#YF F(b_F#SEW9F" F0F(T F(N FF(H1F Fj(A(kk8F `CF"!F(F8`hB!F(Fر!F2Fahj>``JF1F(F(?6?hji+ j!F(F(?!O#'+Ѹ`[!F(hF8!F(hF(F#"+ѣi+O #+ F(Ѵ 'FWEhS'yKh(h^B8F(ѻO 7.3F ѹ+chh+'+##".2F!F(F(!F(F9(ѹ&cB hS&)(Fe(?6F&-CF F@*Ѐ*Ѧi6&&b+v!F(F<( (F('hO S'7cB AF(F(hC (F#b+!F(F 0  8F FXcki;)F F0 8 8i`iCfa0 bHbpG8 FhFh 8 !+ыi+F *+jZjhS"8,+ahh8@8 FF!hE`Fi)F`cj``bkxCkp#i[k$0 8$ F F++.+ !h# 0kB h0FS$F(8F4pp FF!hF ph0FmG"b!hhhu``( FppFFh!F ph0F[mG"b!hhhZ``( Fp-GF FFF [RF!@F$F)FFHhB4F2F7DB ,2,BFQF(F0 #"bahb`h3`pGFhFF/F h mG"#FC,Bj2C;F2F!hh[``( F-AFFFF?1Fhh x !h(3j`0b-h F-AFFFFO.<`,`!")%)!)ѣi+1i+ hh[hh + +!F(`#"+ ѣi+ hh[hh ++c+hh,;hh+hh0FFcyi>+ ++ + m s0+ F(`y>8 -AFF FF@ F&FF2F)F8FAl;-OF+ F{D-Sh0G)F(3F l@F(@3+!;+kshhi*  + +''(FbF(ahF0F (ۅ^h0F~FFhF(ͅ3h++ h [mGh mG, ,#CE,3B`ih ;+*zD\"SFF(LHF2FFAF Fq(1F(F/@h3/@u(Fh0u("!F*(i*F!+ѓi+hh%+)F FQ:F!F(F(MhhHih;@+9  /@0(Frhhb:F!F(Fe(*0&+h,nG+!"F!(Fb+#ah(0Fb#ah0G"!Fh(h:F!F0(@D"!Fh(h"!F0(ۄhh/Մ[h+ф:,*ihhpd&*5hjnG?F-;&+)+@hS `h[hiF(("[hiB{hh#2jA?P8&{D#{hʠhF(vehF(n{h"AF0;FhY(^AF2F!F(S2FP$=!Fh(FB"!F(<.9h:F!F0hxF(+hqF($hjF(t7O O {D3hkhF(CFJF!F(F(HF!F(1FhKF(3i!FC`PFIF(ك0FQRFFIF F(̓9Fi@F!F1Fh"F(3i!FC`XF F(0F(JFFAF F(9Fiw!F8F1FhF(3iC` F0F((F?h^hi+@u(F(w2FFAF FR(lAFH1F(F^hi$+@QhF(RhF(KhF(D5O{D3#hkhF(+KFRF!FXF( !FPF(hBF!F0( 1FhkF(3iC`0FLxQFFZF F(9Fi!FHFhBF!F0(1Fh?F(؂3iC`0FPLAFFJF F(Ȃ9Fi!F8F1FhF(3iC` FT(L/@)F FIBkh F  (jOFF40`4{D Eh"S+  #F #hk0+k!h3F(c #O# ˍ0ʠhp`(DXP0qhhx`4PF(/h9FFPFR(!P0C`0 phRFFAF F``"!F8F(7Ft .c~h_phr!FF8F`(6h!F(F (j( kF(k F FWFDF +3;i(V @(ǁVV, : F F(VXFF( F( >?h; jPF0cHF~ (c(Fh:F!F(F(khh +k+@hh+Xh((@kh+hhh*Xјhqh 2F'!h F(T)Fkh"`hhPp`(G!h[F(?hk mGb"kh`hh8x`(/hhhF(F($!FHEEЊ#CE B N`Np20ADi//qhF2F'!hF()F."ih`hp`(+!"+7/Db+#a+"b/Bh`ih' h+@hh:F(ʀ)Fk+@hh[hh*hFh shhh E[F(SF E EI#C} F KF(EO hh ~ F FkF(Eh 2  m G P`JFahhF8j><;0:hhH F F5F(Oh  m G X`hWDC( T P khhB3ҙhJFCF F iXhC'7C} F i(Fiu;+ :F!F(FHp!F(F,":F!F(F;.F 2F)F X(еB2F1F OB)F0F`(F0FhBЌFFF FNh6h2 ..;FrF% .*F7F 1"!Fv(iyhD(!Fй ..;F")F F .O !h^(E`#j` b-OFMhFFFh+h + hp9FF E`%B!@F()F0FF(AF"hDF([FRF0F|(hC%5 F-CFKhFF!hFiF 9Fiձ!:FhF(bBFkhC`KF0FMF(вh F(-h F-OFFFFXh0B(F`khh*!аB*F!hF(} ihxh``(t+#B3@F@!F!FF@FhF!=F(Q)Fkh2Fxhh``(EO .")Fh(8kh"9FhC`dFhBF8FF0AhXFBF!FKFh0  OD.)khQF8FhiBF( BF'!h#()F YFxhifX`(ИFc+hh(F F-OFF!FhFF(VsBFph]h+h+h)F8``(EO . 0FF(7Ah(F(3:F!FhKF@pDDpXhB030#00RB$Ҹ!hR#0+ :F'!h(zh)FphiX`(Fc+ h Fh FFF$kBhS$0;,1F :F"q4 -C FFF !)")hi+@jY# V*R<3+ !hQF(ڀhhhYhhRhiu(̀,0Jh0iiB#FJFHh&@FB$m#Fh(!hF(hhS`Yhhx`( 3F V2"ZT3+  # Z\\ZT3+ :F b#FAF#hi*!rhhB h0F.(_ :F&!hF(T &#F:F1F(F=")F(C")F(<{hh *= *9" 0 i$shBFb!C`h sh"b)FC`HFyб")F s #F (FF` 6hN:F!hv ( 6 4*9Fh(F/*,8FF(!hF(qyDh !hF("hc(`` F##`-OFKhFFF  h$DE2!F(FFPF"9Fh0F`[F"IFh'ȱF`")FPF")F`(F|F 4 8FFj(*F!F8@8-AF FF"+ a+G!+mуi+jhF*Fh{i++]h7F n:Fh+F h)F(2Fh;F!Fh(z!Fz8Fgzz+F2F!F@F0 ?ihF(9F Fh#h(Ch hZhib"ahbV`h`hD`hD`"!FL(Тi!#ahbFbN`h`hD`hD`-OF- FFij*@   A; +!#&3[Z90)F1F8F i" [k[hbh8a`hD` ih[k_hh#i9F"F aihrF(ciiC``i2FF)F F(hhh+N:F(Рh4F(Рh.F(KFRF!FXF(ж!FPF(Ѡijc9F3F*F!F@FF(ѥ!FHF3F*F!F7(Рij9F~4F(РhF(FJF!FXF(?yz!FHFh'zzsѠijc9FR3F*F!F@F([h+@ !F8FhhF(?EhF(?>hF(?71Fi(!F0F-+F:F!FHF((? !F8F+F2F!F@F(?ij+@w1Fhh^F(?hWF(?hPF(?9Fi&hh;F(?ٮh4F(?Үh-F(?ˮF:F!FPF(?®!F8F(+F2F!FHFO(?h+ ݠij1F!F0Fij+@+F:F!F@FhhZh F(?􆮠hF(?hF(?xhF(?qѲ9FiR(!F8Fb+FBF!F](?U#!FFXF(J!F@FIфh+ +F2F!FPF(2ij1F!F0F-Ѡij+@9F#!FFHF(}hhZh icF(?h\F(?hUF(?hNF(? +F:F!F(?ޭ#!FFXFt(!F8F(фh+ +F2F!FPFX(ѷij1F!F0FѠijcAF#!FFHF;(њ0+h+E!F(F !F@F+F:F!F(2'ZB-hS'83F*F!F (?l7i }+РhF(?]hhmi8hYh FI i*FF1F F60 8FF&"`O~S)F(0@,@,@,@,@ <@,^8)FHX0 8-OFFL!OhO~S&aF $a(Ppc0h7(IРhN(`(CРhHh`(=!F(h0+3БK {D3#ˍsFhF`ah5F3iC`1ihrFH`i@BFF9F F 0 ( h!hy F`(,p /WG`8F(Q9Fh (;iC` "/9FhF(;iFC` F0SBSABFF(FYF (BFAF (AF FF( 59ihF(8FBFF F0(hF(Fi!F8F)KFJF!Fpj(?sijih!Fhhoi6k.8/6j3i;+-(FH)FhvF(?Q+i)FC`hlF(?G+iAFC`# FPF(?<F "!F(F(?/6h?haiqhHF(?#ciiC` F~Fi"b b"a#FhF %cB hS%10F(hQ5# F'+jSl3Sd-GF F)~ E;+x'wKw&cBnh(FS& 6hYh(hhhh(F0 hYh(h(F@1FF(#G"! Fb#*h(h`hh`+hh(h(F@1FqF(#J"! Fb#*h(hh_`hh ha hFIjq0 ]-OFF@FFJF8` 1F`h'F8`(1F@FR( sBhO S%YBF F(;hhC 53++ 3'+:h#F  c6kk:h#F  c5k- !`hF(gRFih F(`Щh<(WAF08h00n-hh  !`h(BRFih Fy(;XFFY-h-ѵh !`hHRFih F`XFFA-h-IF 00sh08h0016h.?T!`h F( -GFF F@h ii(`(b#i<!Fa@F*h(W+hjb!hA0F(v+h`  !!phF(;RF0F(3)0+h:Fy``ia@(h9F0gi  RFh0F0IF*hb{h0(h0?hG !phF( 'k!/h@Fc'#iB+h@F hS'I'(7j90F0+hb+h bnZf#Ca pG-OKk Fah F3,i-{jh'+sjk+o3XhQ!F(kh!i,4pXhF%N#ia#"iBhR#hB#31F F'jbjbcnsf#h#a`b#b*ha+`i+4`hkhik+@ihKx[khZxoZpj)Ehh#bD0%;D0Tr-h$h{ 8D0+;h ,(<$( 9h($&`N2Fqh?(?u6hz^Fzgzz#b3ahhh`#h3` h#`` c8`0E{ 0S+0YiYhk3hBh h  /?nhCЂF(@hShJxS{ QxoQpD)YFFXF-H YF0Zo hY(йBhhh)u %*hzhbyhBhIyDbh(F(9D *QFnF Qh Q QF o JxR 0h0 QxoQpBhhh %*hzhbyhBhIyDbh(?hhkh !a{hb pFFh!F pkh0F[k[mGb"kh!h[k``( Fp-AF FFND+5.3hF hAF"8hhF(0C` F:h"(h")F`8hF(:h F(#h+`$B hS$)BF8F(4 Chh*h+)+D#BhR# B")ђi:*3  -OF F!;+΃mi ;+Khh+@hh/‚{hh QF{F(&!F YF`AF(FN(2УiQF+F""(haF(!!FAF(F3(  FTPF{hh(@ "HF0F81F(FF(h_h/8F89F(FF(shO {hhhiE0AF(FYF(Ѐ(FF(ɀ"1F(hFI((!FDph5(YF(FI(((hcF(O!F#EzAF(FF((FF("9F(h(!FxhX`(uO FEL!(hF(gPF!Fb0F"hYhp`(V1F(FlF(O(hR*`"1F(D1F(FFVFгFIF"(hnFx1FIF(FBF0  F 0C(YF(F1 (@i+@ "HF0F81F(FF hsh' WE^ZF!(hF(8F"!F,@Fj"h4(AF(FF(9F(FQF((FF("1F(h(!FAph2X`(F(FF(CF"(hFI'(!F&AF(FI'(7&VEFY&0"(hF(!F 9F(F(?z69F(F2F(3nAF(FF(?g(F}F(?`"9F(hF(?W!FYF(FiF(?L#F!3F(hF(?A!F"h(?3YF(FH(?, 0C(shh+{hh+ iL+ "!F(F70F8F F p-A F0F FFcBhOS%I8F hC5!F8FF(F!F0F(ХB *F)F0F((F F-OFFFF'.xRF!(hF pZF!(hF(,`bsh0shC`shh ) iAF(FKFF(00IF(hF(hhFJ`F`hE"F(!(h(!FBFahh(``F!F(F|(з09F+F""(hF(IF!F(Fd(6hF8F-AF,0 FNF(W!h0F++O#' hkhF(AЇeF hFг)F9F F,FF+F" hVFH9FAF FF1F hFб)F1F F FF"9F h'FH1Fo)F FA -OhFFh ^h.hhh+phh+h>F( hz('AF<Bd9F F1F( FF(khh+F")F hF(AFhh (QF FFFshh+[F"1F hF(AFph(YF FF3FQF hF(AFQF Fm(?hC'7-AFF!h(FFX)F F((F$ FO(J1FzD(F>j Vwhyj)@F xb(6h(F FߡJ-OF FzDFFౖJ'!FF zD-j +-h-khi h +F A(&`khakhpF3ih F( 0 HF <(O O P;FF(X 9F ?F(bhh001F.F(3iC`khYj(kh,k.?}  ˄sh$AF@bF(?q ?+?i##ˍ;F 1F(?V#FeF(?L0FC` F(?A!FF(?9SF"I(?10FC`ľľIF0"#`eF(?G`XF @aF(? : ?SXQ Fy6hh 3XF F@9PGi%#!+ѣi+%#!+ѣi+j0hh"+ѣi+#"+ѣi+hZh3njGh8DhjGi"0-OFFF3,\@,R%+jjXBXA!+ ѳi+Bѫi+?jjB6:"+8ѳi+5ѫi+2hhPFF@@FB  0iiB0iB `0 GDPhG`0FxhGE4hhhh 8FF!F8#F(FB F8FF %cB hS%10F(hQ5 FKFF{DF#(F#shF 1F(FF("F8FQ( Fj(F0FFbFhh!F `F9F0Fl((FphF0F FFh+%+j11F*F`hF Fp@p-CFLi FFF$chCE$h !8hF)F8htVH`1F0C`)F8<hFlF FFHkBF#8F( FpF h F XhxF0hBF pF1h(F( Fp-O FXFF `vqhQ(FS(iвhih(c6hp H /B~h3!;+98h(FBL(E2Fih8?j(F#1F(F;FrhPFFp++!F0F FHFr!FBHF(Ѣ?h H 70B; 0S'0\i,ah(F(hchFPFi]F(++ !hhFhFHF31FBHFH(cF`h00$h\00FA0FF`!FXF(!F(F7(>@h( bh#+h8Fh1FF03%+jɱHFh h`$h@(5Tah1(Fh h`$h #h-OF^k F F(uK *F!FHF{DrK{DU(!F(#!F8F( FOJF% OE !FHx(OEhS(k3m@k(3-@ !FHFT(4h  ,O!FHFO(  <XFMXFLF(:ei]jh:#AFPF(?}-hi-jh#+!hh%+F\ F0(?YF#AFPF(?P-h$h1h9(?E%,#h+h8F#hZh (Fhkih ++ 8FihB8F(?-h#h%h#`- 5-A$FFF%C#F F BF0:BjFT\3+4` ڲb"b Bb@c`-OFFFFF}(.#)+2+@%+F`OB"+FϜEB )a B R<T53Bˀ-.#!"a b,##aF#A2H<X +h! FS" `2FR(̀ch(Fi'cB 7H )F0F;F(!FOCF,aAՒ 0qD,qDAD<32+O E*  hS R!JF!0FXF(mQ*b9FS WhA*  BFahXFmx`(Q2FQF8F(J%!";{#ab"##axchbih2F)F F`X%`he#bhi@;Bc+c!F0FSFOF<+1*F!0FF(; hS"Phh`kh"i 9hh kh"i;BhC*PkhiD  khi@3cB+O #hh0jh#i9!B,XFih(#: hB*BFahXFx`(2FQF8F(%!";{#ab"##ax chb,i@hS%p'5cB9F(ZF1F8F&(^ -CFi F+Rjv& FO & FO & FO ^& FO =G&OkBhS&0XhHhS&0[hi+D&pD&6'OkBĀhS'`Vphq(shi>&D'`7hS&pD'6kBӥ.# xhS({hi ;#`hS&pD'6kBӊ. xh:8{hi ;###`hS&pD'6kBn. xh8{hi ;###`hS&pD'6kBR. xh8{hi ;###`Ch"F!iFB 7B,p:C"`)BCBCRC `$C `h[hXh#(hRhRhi@;c`hhXh#(hhRhi@;` CCC `c` F(ŀE1)C#E-+F!:****L*{ E"&-F"'UB#_B#ViFh@(hhRhi*"&%xBhQ"Ih i9@@M"2BhQ"Ihi9@@M"2k.)Fph(S6hEC)+@M"02B#+FBM#P3BM#P3hhMhh#(jhi@;+FhhNph#(rhi@;3F(h]%S%= 5cB  -OFMkFOO hES+iS(pj i`h0jchi 9! F(8gh;/+$h,xh0gh{hi 9!8F( 0C4!h)?7hBW+iS'@j(CFZF1FJ( e1FF( (1F@F('hQh00 CFZF1F!(HhC{'+(#hh#` FCFZF1F($h$hB+iS$0i;hSYhr;hh;`F6h4 9- *:q) r    ux{~x             29  "@GVj         x  )                                   @7h8(8Ȋ(( (Xh+@T *@# @ѵ@###:h@@""##S@:T   F z , V H h h @h h h 8@zx   H@h@ÀH@𻀴 h@𴀴H@ȊXh[z T@gȊR zO Ȋz@gH ȊzԿ@grA Ȋz@gdH9z @gV3zH @gHȊCԿh@9zwz(  @.phz8h  zg ȿg  `z0 8@ ' ( h 9RFߑ?cܥL@9B.?-OFG.- FF  ..H.CE.6/D.9ФK. I.O/;F"FD&FFzL.ЦS+zS.zOGzN;F F;FDz;FzZ;F D!F ;F!B дzzgz!.)O~S#+`HBz nD.#мB;zzz1B"дzgzЅz&Bzzwz H BjzFzz JjZZzf$jzUj'%zzgzjUzzzBjzFzz DՄBڀT;E;BҀzgzzBjzFzDB𾀲zj7jfzz[F"F;FBгzz' @zhzHz ժBEE@zjHzzgzXzzBqzzgzzh*hG*hh*ihO h&iO ;F BQ"F FB'zFFEМzDjFzz26MDSDijB.z;F&FBЖzDjFzz4*уhhi;FB z FFBjzFzzD pG z pGz(z   pG pG z pG @z pGh+zz pG+ џz@zz   pGFpGpG+-G\F FFF(8FH!F8FF@FuFFF2F!F8F F#++ 0k!F8h!FB p #jCE !F80  _j 'iDB'a%aeiBԿeaca%h3F5%`eh=e`/+%+"+уi+!+уi+ CChipG Z0@pG pG pG%`FFF0PPP0@ \@\h@ 0jipGjXipGj DCXBXApG-C&F FFFkBhS&0AF(FGF;FhAF FC 36kxZ )F\Ykx[#գm;e`h)FO0h.0#rh(FQhGFqh;F FhIh(6h ##a-AF hFFj(D-DhF F0h(#C`#`jbB b jjB2Ҳb1b. .b.jB hR# jJh2J`3#h:F)F0F;#`5a;#`aP0 jSh;S`#hV0 jh3` pG-CF\0FfhkliF<, khHFiY?1FB<&AFp> #+aF FH FF F(` m@ pGpGpGpG-C%OF.F hBڏh.ȿ|YȿX| ȿ' hȿHW05CG@h3 hDChBؽ% hBh#T#`D#`3+5B`-A#FFCEЄhT#$%F<uFtF-ѦB8&F,F``h; +%$$$$$'"h++ O0opGopGi+++ oopGopGhopG pGopG*-CF8&O FFAF(FFF`BF!#&a'`c`ea` 1(F`0  -OF FFF$ +hB-ҩhQ$ @, DS<# Ch S!0B h  [9 0(E4 FiFB!m@iB8 F2F "hhh`%ac)`i!F("hh`#hB٠h!h; h!2&` -OFhFFF ++0FŖ#0ihŖ  0JFQF8F `%GFB1KFRF9F@F\D(J5 +i oJF)F8FG DKF9Fjh@F 4-hoJF8FqF G F- 0UEF(FB"OIF@FJ(2ZEYCQѭ -GFF CF@F7iF8FE0 +;h F + h#B8FzF(iv  65 G -OF"K{D(Y[H"r*3#g(I#F_8A  3Ez*RF9F0F#z(#RF9F0FO +@?b d$h,# `!0F'iD Z[H"r"(З#:F0FCF(0Fby!iD[oGBH(Ѿ+ P014(+ +NKO:O FO X*RF9F0F#XRFO #9F0F  c :K3 6S iKF  E   S&0BO3   QEX.O # O3Y O "F*( B"pEPk B2 B F Z?oRF9F ??b)#)` w-O   FFFO O3PFFPF(FI  yD.FBF 9F0FO3d cѕ+`BBF 9F0F#FN( ]-O$%F  FF8FFF58F4F %`@F$I yD#FF"FAF8F(5РF   Uky!*i8FD IF8F.(RFYF8F&D#d-hC;4D` h; +  pG pG pG pG pG pG pG pGh pG pGpFM0FB p𵅰FIyD 0(F!F(F($B(F]k(4!(Fc(4(Fuo@C:F1FD #(F u-A FIF FFFyD  FS!F FE(BF!F8FG( FCo@C"[)FD # F yu FKkF`+HIyDp( F!F F(}Щk F (wk F(q Fo@C"9FD # F_4m311I FyD>(V F!F F(Lm F(F)n F(@in F(: Fo@C"9FD # F(s'I FyD  F!F Fбn Fn F Fo@C"1FD # F #utat-OFIFyD $ F! Fs( Fw! Fi(` `KO {DK{D .uhl3ky> +@܀/i (4F F( F?! F1(;h ( + (h#YFjy@F0DG +0 jy@F0DGF FT(?q! F(?j8FF F(?` F(?YAF F(?R F(?K F(?Dl F)!(?: F+ !\(?,iy F(?#! F(?! F(?l F(?Oq F}(? F  o@C"D # F6h #2F F Fmo@C2FD # F ssxs-OFF ThyD( F>! F0(00Fzy +0 PEFD O )FGF(FH+hzy 0F+0hD)FG  Fd(! F(ځ F(Ӂ F+h ;+   !!h)i! F( F(IF F(QF F(𡁹l F)!(𗁽l0+JzD\! F(yy F(}! F(v! F(o! F(h Fw(`I FyD(X F{!F Fm(MI FyD(E Fh!F FZ(:O1 FR(2 FUo@CQF"D # FI FyD( F=!F F/(mHл?! F!( F$o@CQF"D # FzI FyD^( F !F F(ހ9nJл?! F(Ѐ Fo@C"QFD # FI Fo@C"IFD # F9?L$Gй0&+A5VIF FyD ( F!F F(YF F(#[E m jG F(r 3 Fo@C"QFD # F F o@C "D # F#szyAFo0FDG!D#hBĿ#` ` +2iO F-zy)Fo0FDGC& $  ˎ1Fkh F h-h  #F F qpooo,on-OF?I%F yD T n F)FF F( F)FF F( F)FF F(=hO: 4 %L0Z   ˌ F0yk h(-h *FIF F # *FAF F3# # Fo@C*F1FD # F $m-CFIFFFyD( F!F Fr( I FyD( Fi!F F[(+"+)+ !+ !! i;+vJzDDy!! F+(׀khh*h;+lJzDDyi! F(i F(+!+khѪi*!i+5 FB/*OCCɲh!* hi FBX3Cɲ F( Fo@C"9FD #KBI FyD-(r FIFF F(h/L{yD;+7JzDDz! F(U8iF F(L! F(Fl F(@O1 Fг Fo@C"AFD # F Fo@C"1FD # F 9F FghhF F_`9F Fc8O1 Ffj #lkNk"kjFjpF F&cB hS& p(F(6#%+#jF&+#"FF#"F!(F0 p-OFFFFyDo(4 F! F()kk[h++>L FyDS( F! F( kk Fh()F F()F F( FyD)( F! F( F! F(؂#oh5{D 5{D /ڀ~hl3Ӏ 04F F ( F! F(0 0 + 0 0#YFryHF0DG +8 ryHF0DGF F(a! F.(Z@FmF F$(P F&(IIF F(B F(; F(4l F)!(* F+ !\(qy F(! F( l F( Fo@C"D # FD3?h":F F #7 Fo@C:FD # F')F F0(с*F!FPFS(ȁjiK*F!FPF(ѹI FyD( F!F F(Kli{DDK{D.wh{j+#9FF F(yj F( F(~ Fg!F FY(s F(l FU!F FG(a! F.(Z;ih*h;+[Dyi! F(F! F(?;i!i FBX3Cɲ F(, Fo@C"QFD # Fk Fo@C"IFD # F[6hl Fo@C2FAFD # FI4 F( Fo@C"D #|I FyD(܀ F!F F(рkk Fh(ɀ)F F(€lI FyD( F!F F()l F( Fo@C9F"D # FYI FyD( Fz!F Fl(il FS(Щl FM(yl FG(s)m FA(mim F;(gЩm F5(a! F8([ FEo@C9F"D # F)F F!(F)F F(@*F!FPF(8Ыj4 F Fo@C"1FD #*F!FPF&( Fg Fo@C"D # FW + F li9ihh$h|f/fe,fddId8-+hhpGh#hFhBFpGhhpGFh#h[y!y:* C#bycbqdy C8Fi FyFh+]y-h1hRFT(c{`cs88 FD{8Fh{8(F 8p F!FFXy`d<,q`p#`p-A FFFFho!F `FCF:F(hF 51F(F;"F `1F(FO( F-CF`F #F ^C,SC"h 6hBy+)э+FHF(4 "!(BycBq"h2Sy%ycq#h` `Qy CcQqh!Ky%ycqh"hB-ݓhBHSy;`A#h[y=3F"AFT(CyhCq#hZyybq#h`#y `*"byb#q y-Syay-RyB Fc#bqҲcbqcy;` -C FFHFF F0v4BCO"F)FHF8)FHF3)F ]0F !hYCB 1F#F8F K "SCA]"8F(ybqCybCqvh 1shO +Zh1nhn2BO sh` nB)F8F )F F)F@  F(6h8 FF!F"ycq*hSyCBycBq+h`(` 88 F!FE`ha{`cycs#h{Yy{CasҲYyCash8FF"ZycqhRyCCybbbECq FF"<ycqhQy"CybbCq i ShB\yBFh-AF@!FFFF # `)Fa 0=( F`#aacai F 0 `@IhZi;B h`FhIh 0-OFChh=-ch i!hY>0(=h?/\ch &O iS0^C0E0 0S)0]i=h`(00CE JiG#2FQFF F'm-h  $PO -[hhFJiG#2FFQF F(K-h , 8FNAF8FNF(3 [y@5CFh}*y**h2PyiyA@ `+F1F hF(3!+ѵi]B]AK{ FeKs-( hAF"i FG(` #P^C 6hFIiG#2FIFF F(-h PO hhFeJiGF2FQF F(ǀ-h/ch0FiDS00 F 0FF(5 [y 0j*#n` BQF Fs z3QFF  QFCF(v0[E%u 0FvO , 4 <0FhO  0  0F_(   , CF"QF FR(8yiqCyoCqF,ByQF0F/F( E "KFYF F'pyhqCyhCq?;V B-AFFi iP.Fױα{ysyJѻhhB8F}FB8FvF0FrF" h `hhB ܈Biy )h*``+F FF#i"{YyCa"sҲYyCa"sh ah`h#ih` F+Z{oZshIyD-AFFFޱ4i"y+ #hYy Coh8F0$h6h #hK]y#y #/%y- !F hhhBhZRy*BТh+F@FX Zy)CaFZq3{Ce3sh+F:IFiyDP a#{`#s-GFFFF$rhhBi9FS$+nB޿ 2 +nB 2 Gh0 BsB "%KJ!pi{D @i{hB 2`i2hB 1`hhF +iB'hO S$0^ihkϱhBѸFHFX-iShBE `h?h6h4 +-AFhhFmF 3${hhBiS$ `>1(F(6h$`>1(F(6h4i&ifhA(F c{Ccs6h$h 8 0FFF(F( F8`hB h8hBCy pG pG-OFO F!F@` 4BFBFkhF F(. FzIFXF(P   !jh KFG(", HF0SFF "[F1FHFF(+i+ih 1Bh1h`Fh)fЏhWEcIyaaaQyoQqY)6hO !``#)i`#hh``#`h`*ihh4h`hhBFh+hB` h#`h`h0hh`"F)aHF1hF(?z(F7 F F-CFh $FFF %TC"!FBshF!F[hi:7бh BFAF8F2h FFF(Gh `EyFh):0F(5#y*h0FsFm8FnjKhñZhnn2Bh h*`yC"b`#q# "y!ae"qbycbq` F-OF FFF-F%bAF '(\0@O |EУhhj H11IT%5`;0++ JFQF8F3F`3h+$h0B0S$0 k{ZhBE JF8F3FH3hh4(F-O'Mh F F hBV+i S'`.KбhHF!h XFh (Mh F_(D+/бhHF4F   hj!FH33[h Fȱi`aAhHF6h7 H !hHFL0 h!h@FE !h">('hB(+iS'0^ih1FHF`(2F@FX(гh0 2F @FJ(6h7O hE+iS)0QF BFFF F>0`F0.G Fqh20F:rhB h "jBCiH11I 4!F;F   2FF(?ni `aQh(?c6h0` VqhBF FFF8FE@E:FYF@FG4!F2F   ;FF(?68F&6hm  a  <9F0FAF0FF8i+8Fh3ih`Fi< i2F9F a$h"FhB+iS$04Za +8F hF{C s!F8ch+Yh:h8p FLhF$chB$h !hQFf`!F(3#z{Cb#r۲{Bb#r FppFhFS{+@{4ӱ#FhQh{h`h{z+00FhBf"5H#FxDhQh{[zh O`P#0S^1CFh(J{zDR#0;+@!2BCDhDhBBBBBBhB DDDhB   pNN-OF-F8FFF@ o24 (F##$% (0F%(i̱#{"i(Fh ("F!i0FB(c{B$3$$h T (F (<(F FF0FAFF0FZ :8FFh(F (RF0F (ј!F(Fs"F8F(5F(F1F(F F8FF8FAFF F(؀zCrlN~D+]КhR{*S/F T9hY@F%G(9F@FS$?h,џ[+h3hK{ 8FG(*h zh{V#0SC:z'zzDg,F-h#h!Fh[{B$3$#hh{C@s h#)F F$3`3h:{ hF`#"h`hh` K!FhF FFRy{b2sРE"FAFXF(?BF!FXF(?z!F(?!FPF?ѮHF!Ft'(knNLp FAhFFh1+h*FH#B ahB)hD3r p-OFOaFFFF F!D> 1)0 $ !O # O F  D @* FO  B L,3+1 @ )(F(h46F`)F`h`l*( FJ-OFFF$ khBlqhFȱ  kPFAFPFF`IFXF(IFXFBэh4h"oBPhhBF#Dz 3U#cF@1,PEXhPE О z1U! @ BcF1{Fy9#!2{ALTT3+)RIyD k)#B;B3" 1{AITIHT2* F4IO0H-OFhDFFF i#h[Yh BFhhBF+h+O , B) H3+#h#ZhhB $h#h(h+1YhhB!,/shBzH-h+h3+hSZyOCFh!F0F@( /rhB"zH"rFh!F0F*(hhBFl4[:F` 0  pFD@pFFF82F)F F0 pJ0zD Cp L(FF|DB p`1F(1F(F#XBXAppCF@1g#casFCi FC1F 0^(``i`a1F U K{DB#+``a C)F Fp8C07F@h FI#!+ ѣi+j^hh(` F0pF-Fh@AF hH mG"#FC,Bj2Ch2F!j``( FpF#!+ ѣi+chjiOhh F-O8FFFF#%+!(hSF jC`(#0!+ѣi+@hШh, joGC D$"+qѣi+nh_h.0C.0;h&+njGFh, ah0GC  ` TF0F, ahGjA1Y(!(hF(hFRmG9Fb F9F#F"(hTF(YFSF2FIF(Fk(?|i;F"(h;(?oYFp pFFh!UF ph0F[mG"b!hj$``( Fp-OF F-G+i"+@.lhh/9^h.5#2Fy! hF(*1F6ih h( #AF`shia FF( 9Fhshi+0khi+,2F! hF()F#+Fih iB33F"9F hF()F1F FF(ՂkhhǺ.@hh/ɂÂhhB(F  8FQF?F"+ QFHF5F"+Ai+hh%hFXhEOFi+AhhhFXh EAtF! h)F(wOHihjPp`(m0 D ,, *<-0R+Oѝ0 D ,. *)FJ"ihjp`(21F FF(*#! h|F( )F,"ihjp`( ">* [h+O! hVF()F"ihjp`(1F FF(F! hF(݇)F"yhjp`(ч@F1Fb FzF(Ň:F! hnF(1F wAF, FaF("1F hiF(1FAF FMF(! hF(h9F`'h#-p,01F.p F-F(x;F!x4+٦y+)F FgS+{hYT.O0 Fa  @ (E0i+O BF! hFx4"F hF(+O BF! hF( AF,HFYF, F(hC)O )F8F9F FF(T. "" hF()F++*h+. {'|'h.ن! FzF(φ"1F hF(Ɔ1FAF FpF(#9F-.Rhh.! FQF("1F hcF(1F9F FGF(&F3F{! hF()FAF F0F({3F:F|! hF(p)F|1F FF(e"AFN..Phh.[3F"1F hF(Q)F]9F FF(F! FF(<;F" hF(3)F?9F FF((#6! hzF()F*9F FF("2FQ/.Qhh.3F"1F hF()F 9F FF(! FF(;F" hF()F9F FF(Յ#6! h'F(˅)F9F FuF(#3F0!1.5hh*^h.#5! hF()F9F FPF(3F" hXF()F1F F<F(#4!9.;hh.|! FF(rF"1F h.F(h)FtAF FF(]1F;F" hF(S)F_1F FF(H"AF=.4hh)>^h.:3F" hF(1)F=9F FF(&#!̻?. hh/^h.𼄟f 9Fhm(𧄟a 1Fhd(@;F2F?!F.Vhh/[h+"9F hVF(9F1F F:F({hi+~+,F! h'F(u 3)Fb8F|9F FF(e2F! hF(\ )Fb0Fc1F5#F!PD.[hh*DSh&i/*3FH! hF(5)FA"ihj p`()1F FF(!! hF(8FbFF! hfF( )F"ihjx`(9F FF(3FF6!H.Nhh.shi+ՃO3F2FF! h/F(Ӄ)F"ihjx`(ǃ9F FtF(CFF7! hF(9FAF F]F(3F" heF()Fu+򅀣hhm")F Fhu. OOh/[m+h 7u>"k&{DjiFF hF(e0C` FF([F! hF(RIF^QF FF(G! hF(?9F,`-`.`/`BIF FF(+"9F hF("9F.1F FF(h`w.)F F (F(hiV*٦m*] h)F&F(j"b3b 00.+&,0+"(pjhڹXhBjjC3۲c2bC c jb 0FhXh((𭂦m+ ^&_&e&]&hahX`q*E_h/ )F h(|j"b3b8F 0BF(lQF FF(dKFBF FR(\r.s. _#]#^#ahh_`t.@>^h.F@h/<#k)F hji(1j"b3b0F 0hF(!KFF" hF(1F#IF F( ;F"1F hF(1F9F FF("qhjF(2F! hF( 9Fb FF(ׁ#F! h(F(́9F"yhj(IF FlF(F! h`F(9F"yhj( _IF, FIF(I HFyD$@F2F(F hF(|0C` F'F(r;FF" h.F(hAFt0h{`+^9F F F(VF! h{F(M9FYAF FF(BF! hF(99FE"yhj(, AF, FF(! FF("AF hF( AFIF FF(:F! hF(9F"yhj( AF, FF(ހO FSF9! h,F(Ѐ9FAF FzF(ŀSF:F8! hF(9FQF FcF(! FOF("9F haF(9FQF FEF(FCF F>F(YFCF:F F2F(x:FCF1F F'F(mFSF" h*F(d9FqAF FF(Z[F"9F hF(Q9F^IF FF(G FF(@;FBF F/(9e#ah`h^`h"`h`#k.*)F F."-+hh,+kh F iF)F5F¼(F +#2Fx!0F -OOhF Fh.hF(𲀠hjih0Gj:F)F`3 Fb h.03F(h`+.+Aj+A8 $ , 4( D {DɊɉ Ɉ(03030b F(@F! hF(>)Fx1F FF(3F h F(* /)Fb0F_"ihj*p`(1F FF(hhm+J7"k{D83jiFF hbF(0C` FF(F! hF(^/p)F,-.1F F.F(KIF hF(Ch)FOh_`v#,-1F. F/0 F((hhm+$#k8FjyDHFF(F huF(;iC` FF(AF FF("9F hF(9F&{hh0+AF FF(چF! h-F(цIF AF FF(Ɔ! FF("9F hF(9F{hh0+IF FF(F! hF(9FIF FrF(BF! hfF(AF"j(x }IF, FNF(k:F! hBF(b9F"yhjg(U ZIF, F+F(HBF! hF(?AFy"jC(1OIF,, F-(:F! hF(9FP"yhj( IF,, F-F(2F! hF(1F*"qhjx`( 9Fb FF(؅2F! hF(΅1F"qhj( AF, F(2F! hF(1F"qhj( AF, Fs(#:FF![F hF(9F"yhjp`(x1F FSF(p&SF:FF! hF(d9F"yhji(WQF F2F(OZF! h&F(FYF"jJ(8QF,,` F-` F((:F! hF(9FY"yhj$(YF,,` F-`F(! hyF(h7FQFh,`&-`' FFF(! hX(ڄh`YFh,p-`  FFF(Ä"QF h(QF \ !Z& hF()FOs,pIF-p F.p/pwJ&(.&! hfF()FO N,9F- F./RF(o! hF(gh)FhZ`h`,-./`9F F.(@QJP F(@vF! hF(/)Fi1F FF($hhl+L8"k{D@3jiFF htF(;iC` FF(F! hOF(9F-AF FF(F! hF(߃#1F,0#-0AF FF(΃:F! hF(Ń#1F,0#-09F FF(CF"1F hF(1FAF FF(;F" hF(1F9F FnF(hhm+#k8FjyD?@FMF(sF hF(i;iC` FCF(`! F F(X"AF hCF(OAF0h{`+E9F F F(=F! hF(49FnIF F F()! FF(!"AF h F(AFR0h0+ IF FF(F! hXF(AF6IF FF(:F! hF(9F""yhj(ۂ#,IF,0-0 FF(ʂ:F! hF(9F"yhj(#,IF,0-0 F(:F! hzF(9F"yhj('YIF,,p F-p_(|BF! hSF(sAF:Fjw(e2#,IF,0-0 F7F(TBF! h+F(KAF:FjO(=' QF,,p F-p(,BF! hF(#AF]"j'(OQF,, F-(AF hzF(hYFhO ,-p)QF FF(AF h[F(܁h`hZ`,-p YF FF(ǁAF h>F(h`hZ`,-pAF F(! FyF(F"1F hF(1F9F FnF('SFFF! h F(~AF"j(pQF FK(h[FBFF! hF(\AF"j`(NYF F)(FFF T ![* h(81F'q F,F- K*(&O ! hF(h`h,pQ`)F-H1F FF(FKF" hF()F31F FF(F" hF()F1F FF(ـF;F8! hXF(΀1F)F F(@ɀ FXF! h;F()F1F FF(ih h7(#2F`#a!p` hqF( FF! hF(})F1F FVz 0'!;F:F hF(c)F1F F<F(Y"ihjbp`(Q2F! h)F(K8F? F(BF! hF)Fq1F FFh#"Fjp`(2F(! hF)FY"ihj$p`1F FFp! hFP )Fb0F> 0F(F xI-A F8F F7(>+++&,kah ++0F ``$hhOS$ ++ 4kB)F0FFXF0F(hCF)F8F( F-OFh Fh Khi+hyh"j i((hF(&+ F!FBK:F!(hUF(9F0F0\IF,(FFF(F#i(h(IF(FF0F(!(h&F(!F IF,(F( 0C& o6AF)iy+,;&+'уh mGhF mG!F(h8F(?u!FNh!BFphljG1Fb(FOߺ F-OFhFh-𠂃hh[m+d<5"k{DjiFF hAF(3iC` FF(zF! hF(q1FAF FF(f! hF(^#)F,0-0.0/01F F|F(J")F hF(A)F1F FhF(6O*FCF! hF((9F*FCF! hF(9Fsx1F8FCspkxCkp#hbh(#h)Fbh8F(1F F&F()F FF( 2F1F@F(*F)F@F(ځ#kZkhm*j I@FyDHFF(F hvF(0C` FF(! FF("AF hF(AF&0h0+IF FF(F! h,F(IF QF FF(v! FF(n"AF hF(eAF0h0+ZQF FF(RF! hF(IAFQF FpF(>JF! hdF(5IF"j(' bQF, FLF(JF! h@F(IF"jd( >YF, F((BF! hF(AFv"j@(߀ YF, FF(ҀBF! hF(ɀAFR"j( IF, FF(SF"1F hF(1F-QF FF([F"1F hF(1FYF FF(")F hF(z)F1F FF(pCF")F hF(g)FAF FF(]3F"QF hF(TQF1F F|F(J+F"YF hF(AYF)F FiFO2FCF8! hF`9F1F FTF*FCF8! hFȱ9F)F FAF"1F hKFH9F)F FO. >FkFhF0IjyDi0FF(O:F! h F(G9Ff"ihj1h`(< )Fb FF1F h~F`3iC` FF(F;F" hF)FFBF?! hF)F9F F-FXFKF5! hF)F|1F FF! FF")F hFH)Fd1F FC -OF Fh!FF0F(_1FF"qhjx`(S 9Fb FF(G")F hF(>)F%"ihjx`(29F FF(*2F! hF(!1F"qhj( QF, FF(")F hF()F"ihjp`(1F FzF(:F! hnF(9F"yhjp`(Հ'1F,p F-pXF(ȀZF! hLF(YF"jpp`(𲀆,p1F-p F6F(! hF(QFh1F Fh#,p-0F(FKF" hF(~1Ff9F FF(t! FF(k"1F hF(c1FK9F FF(YCF")F hF(P)F8"ihjp`(E1F FF(>F! hF)F"ihjp`h%1F,P F-PF+FF8! hOFȱ1F)F FF"9F hFH9F)F FO -OFF (b%  0BX 0S%`j)HF(Obi,=ghHF9F(DCx +,9F0F(59F0FhE iR.0h1 h2ShSE hF `hJhB hF```$htiO .chiS 0P]jj Fij F)jmh>  9FHF^0P=O -0S 0`f1kAKh8;+ 1HFKhvh= JFi8FO F iPO6Di|i,, Baa,h4,`Aaah4`0Bp"FF!hF p(h(#a`!F``(h ( Fp-O'F FFiYF *FFOF(#i; 2 #ia'aciC 2 cika#caiC 2 ia#aiC 2 ia#a#jC 2 #j3b##bcjC 2 cjsb#cbjC 2 jb#bk@\@\FcF#\3+NWBkPPFc#\N ` 3+pѣk@ \c#P;LQNkcPR A `3+ph!@F`hp`hc`F(?B!@FF(?:!@F (?2   SF:FIF0jSF:FIFpjSF:FIFjSF:FIFjSF:FIF kSF:FIF`kki3+#0;" !h03MFX#aPF aPFglb,?ٮhC `i+e+b!@FF(?ǮCh"@!h03F#O 0PFa,aPF[ cPFUgb,?{h "!h0Fб#SEO1!T3+PFa#b-` cPF(gb,?phCc`ihn2rjzQiii2 `O3ifrjQarja (jhShXBXApG-CFF(G/+h0hvhF33+ Ѷ OE/hhD0F D$(+е O4&i@+hh8R#B3BD6FEh#R& F/ / / / /o o##oojXChB (+"+.+/+iz+y+7+;+  ٱhh XBXA "+(+ыiz+y+7+pG;+0pGFpG pGa.+ /+ pGFpG pG#!:*4L@ђ*j+   i1+ ,+++ +++7+ 5+ y+ z+ّ;+FHA F BsFB Bs"J!K{D K0h/hC0C`0 `{@"-OF!7+h%h+7Rh*3!"%?+h'h+$Rh* "'!!F(F|@+/h(h)Zh** h++&*@&+@#"#+#* !F(+"0 F(߀j3K !{D"i%.,"C "'.**h,Chj*O8" " "$"";" ":" "/*@h"()*+Ch&'+3)Z* **{ hh+*uhh**phZh)*kh(g('j+!#*+ # !F (F'#+ ) (*=")(&fh)=Уj+:КjBRhyi * "a#*+ #(F # # 7#'#+)(* %" !F)>"(&O)$*%+ #h+h*Yh)Лh+ +(F!F"2 0*ыj+i0 ,p? !!-Cf1$p'_IkgwKaRk1{D^F(F]bdec`p(׀nI(FFO yDkI(FyD(F(€c(F1F(c0dej+i#^i+[iCh+jZhj)j*h+_j{ #0"h0F[h#FXhhj)ih"nn2B=Ѝ#1"F0FCbh+Лh0khB [hb hh `hhk; h`,0Fh#h+П_aRjB [n;-"F0Fc0F1 (F6(FF0F(,(FbFiBjB i 0Fȱ(F(d(F0e00c;07 i])() ( )!()CXBXApG pGFpG pG(pFF $$. !(F4 Fp(pL|D4@$!@F%B!Bh4BIh5Bh1%C`[h+!`!Fp)()(ЈB () )(  pGFpG pG pG(pFF $$. !(F4 FppFF p*БBN +S@+LhBуB hT#@,hT#@,3"+$+(+ыiiB&+3hjmG3hjJmG:B  p.+ьj,Эj-Щjj(ШX@ @ p p-CFt FFpIF@F"F)F@Fб)F@F08`0CQB eg@ 9hRb0hC@`#o+ t(FAF(AF(F08`0CQB%g 9hRb0hC `-OPO F FTFFOhG(iG( к h) cF  O*Jh*GЪ*Cٺ8𣂺9:*@򸂺 ѹwtO O1RBPiعh)) ``QaH`  O2:)fdjj(G>>}}}}}}}}d)"""""))"")Z:xxRRRO3h O2C( ѹ@\+X0C+@t O [FS/b D# 0Zb0  h!F(FC(0b2F0KFx+iD[h+ [BГE0  Zb00b0#D*0B B "F3F)FPFB "F3F)FPF  ch+[h+ B# B=QF FF(s QFB= FF(h@!F(FC( 2FKFX(@h # @ Ot Op `#J00C Db0nB9 3F"F)F (@q3F"F)F )B 3F"F)F (@R3F"F)F (@D'B#F*F@ 7(@1B 3F"F)F BՁ 3F"F)FOpi  sh"C( 2FKF!F(FBh%O`JOZ0kiZFQF#FH3F"F)F EkiZFQF #Fw(kiZFQF #Fm(kiZFQF #Fc(sqcm+mh#*@ijZFQFkipD#FF(W3F"F)FOp(@ji!FXFDAvE? vE83F"F)FOp(O2B'#F*F@ g(@a#F*F@ +O2B#F*F@ G(@A#F*F@ O2B#F*F@ )(@##F*F @B̀#F*F@  (@ 0C*@CJ+`h(FB(0 BY[a (3!FD# 2FKF(@Ԁ  3C۲c[ (3D#hC( vBrh0C*h C_[+G`O WsEUhO C(0CJȲrE(1a0D"0!F`(F0D"0 2FKF+(pє0 3C(3D#0j00hC(`vE "F)F3FO@`(G3&ЫhC+""3Z`tRY3D# 0Zb03+є0b0h C(F h#@/ t'p'`#;Q0C Db0 -GFiFFF0+ %Z?kZh9F0F8ki]h-@5- %Z?[Zh9F0F(kj]hp5-0 %Z?[Zh9F0F(kk]hX5- clKZh9F0Fcl]h-F УlKZh9F0Fl]h-7  lCZh9F0Fl]hM@ #mCZh9F0Ft#m]hݹ УmCZh9F0Ffm]hmcmñZh9F0FXcm]h} !F 0F  3iC)P -OFnFFFh9F@F/F1F@F1F@F0 CQB Rfb&0hC`#9F0F(>9F0F0 CQB Rfb&0hC` # !F 0HFC"`F3ZF h#. l&h&`#3Q0CDe0-AFF#FB=F(F FhBF)FC&6 8F _h#@, t$p$`#cQ0C Db0-AFFhFF @5xДA)-+C`hC&PД0a0 !F8FsД0Zb0h"#`hC& FF!F # -G" FFUF!@" FF~#BF 9F0F $#O #@]0m#h#$eh$t`@ee@ $0FO3F FK` z `o r i +"zB`"r #hhh#`k!h !+:F!F0hR( Fj FF "Jb2%*f` B Jbj-"Fih8hX(-hp F8!FF.p"O1`B``a`aaAbbbcDcp F!б !#`a` C`cO30# fgfCg()F+()"))F ( )!B( ( ( (( pG pG pG pGO0pG pG( pG() ( )FF pG ))8(!S DG!%)-15 pG pG pG pG pG pGO0pG0 pGF F#3`+(Q#@BW0 3;`$+ 0`n\#OeRc`sFOeIdOuAX#Ou9+T#%2+D#%+H#%$L# %kP#@%k44#%#%4#F$4)F;`# `3`-OFF #F +h; +"f!! !!!!/ ;Uih ;)N h+K (D2@N`.:гjO R+ *@> BAF R+  F +⮹ X)9ЎB0Fsxosp  =F 3F$F2F ( ;+ K1F(#QFR(`,f`;:+R#0DG+SkS[SSSSSSSSSSSSSS  hPF@(?1 h   h #!Fh A ;  (?#}b#&a"&a h\F(?F@# 0#0P`h0O30 0o 0 "h,F(?ȮFF ǼǼ@# 0#0#PPF0haO3a 0o 0 h(?  *iPFTh `O3#a#}o#uh `O3#a#}o#u ##`h,?|`O3#a#}ho#ubO##`j?fT0T@X0`"T0`Y ##`X(3H#`Nhhmi`O3#a#}aho#uO3a 0o 0#c`b z`(?F̮̮̮2F `>(?`0Ob`"Z`O2a} aouO2a o h bbVFSF.4F l:m;hXBXApGFpGFpG@h 0 h+0 F#0 -OFK FFh{DF*F FF@Fy ,! F(wJ!FzDJ(.j.L F4(ZFQF40 F(;FRFAF F(ZFAF F(AF F("F4~(BF)F F(AF F+F|(6h [F*FAF F(H0;)FBF FF1F@F ()F F(?|kjO.j[kXhvshYnZk!h fh0D6h0Eݳq02FJ!8F%K{DL2F#KJ!8F{DAe`d0h !Rh8(вBFF!jn:jfh#9F K FX K{D+FB @M<F!FFF :h0FG#b"F(F``( FpF-!F@F 3hH G#b"!(F``( Fp-OFF,6B{D3$ie(b0"b"00b0 "40F"(")F FF(+iC` F( (F F("F1F (40hm`%zD\%zD2"!#QF(" F$F(O O'(3F F} F(is( JF FF("FQ(! FF(?{ C`XFCF:F!F(?l3F F<F(?Wi1(?NJF FF(?E"F (?>! F<F(?6C`XF:0 +x ]hky> *@kի'jy.iDˍ3F F ` }( 4t")F}tky"! FbEkq F S`F(?E`  :F F*F(?Ԯ "FiC`,(?ɮ ,F2i(? 8(@a00m.@[4p)F Fhm+< (?+iF&C` ! F,FC((?@F , FYhH(?aP 1F FF(?m/" FF(?c 1F FF(?U 1F F(?KKFBF@! FF(?@AFOT FF(?0 iC`CF FF(?#9F" F<F(? ihC` O :F! FFC)(?HF, Fyh(?#DaѸO2O"W< FQFF(?٭QFA"W< FQF(?ɭQF1"IF FF(?IF$SF"1F FF(?1F;h"IF FF(?IF7 !C(O̠"7 FQF;FF(?QFSF" FAFF(?yAFSF"1F FF(?l1F;F"QF FF(?_QFAF" FtF(?R"!(?H#BF0$!KF Fz#(?:IF! FF(?/ h!`h"Z`h#`h`DT L P (?+iF!C` FF(? 7 b FYh(?O !p` FF(?HF , FYh(?ݬ#P aIF F s(?̬FCF" FF(?¬AF*. IF F[(?2 IF FP(?RF@! FW(?QFO T F,F(? iC`KF FF(?"9F FF(?y F!ihC` Fz0FC)(?i b F#(?]#ax`O 0"1F FkF(?I1F"9F F^(?<9F2F! F>F(?0 Jb F(?$x`9FCF" F;F(?"!x`(?#2F{a! FF(? 8, Fqh(?OAF FF(?1FS 0IF F 0Z`"F(?֫IF>! FF(?ʫ#,0-0 FYh(?AF FWF(?1F 0QF F 0Z`CF"F(?QF:F$! F3FF(?1F1"9F FF(?9F! FF(?u h`hZ` FF(?e+i"C`;F F(?[+iFC`(@S (`00m.[)F FF(?=+iC` FF(?3iC`JF! F50FC&(?$0F>#,"!(?6.1:F@! F0F(?9Fm2"1F FF(?1F` FF(?+iC`;F)F F~F(?+i C` FtF(?ת+iC`3F" FF(?̪+iC`"F (?ê! FF(? C`  h D!F FF(?"FC` m(? a(? $ˍ F5F(?F FF(?~h `jb"FB(?s(F9-OO O O$%&'h+ h"Rl"RhB"a hl"RhB"a hl"RhB"a hmRhBa hmRhBaJh*?O JhRi*RhB a  JhRlRhBaJhlRhBaJhl"RhB"aJhm"RhBJhm"RhBJhRm"RhBO h  Rh"RhBhRj"RhBh Rh"RhB  i#S 2#` 0pEZ -G" O OO $%&Oh+;Oh7l'hBhlhBahlhBahlhBah?mhBahm'hBhm'hBic{  0PE 7`#F F F#Ai@h+F!h`D`03H3[C`#`pFFF FZX #"F#iihhF  #!hxP03H3[C`#`p-OF FFDFO " hBhh9 Bۙ!Q! )yO )h+G !\))F;FBF0FFh0FZ3`D##:FSFE(4h;` 7)FBF0FEF(hZ3`D##0F:FSF"h;` BF)F0F$8hZ3`D# ;FBF)F0F<(-OF F`  & hhB$hhB$h, F20h kh+. +!+-ѮhO >*++@+ ++hho>+ O O +г hO > hO >hO >&F'FO8 + ݸ?I #FEFFB*K-RohB ?hhB9y)?h/ ! ]) #`)F#F O3Rh?g0BO' BeFEжvh  ~K Ս@#F)F(CF?K0+0B3 0")FS&00#F6` 0O1%*$"P"0{B[jFBF*,МB1#F2*F*+ 0D)$B"+ݠ"BQ"@@"@:"@+B"BQ"@@"@2 0%Ch&tROB TiDVa@n@BhtROB TiDVa@n@B[h-%-AFQhFFh)D)H )L@)P X)T 0 "h3!(F` ` `$hB X/1F8F(4(h1F !FEk hBd+iS!00+[Г FBbi@`\aaab\bbbc\cccd\d\lfdlf dlg@emXgte\et\fdebfR`B[h1-OF#& FF`F"`!1FF(Fr'40@ 8hB iS&00c FBbha[h6 H &,#h"!HF|"{"*t iF:yh)3+'hy+ !hF #ihBlahWhBiЂlWhBdlWhB_mWhBZЂmWhBUBm" WhBJWhBG J RE^/*WhB6WhB2S/8Fah(  EWFahK!F" @FfCj(F&#!FY(F(?;`(F'h AIF8F"FF(?iO 8F-O   04 (F&0B0S&p{hSh:Zh;nn;SBSA#`@,Ȁkh4+`h`k`(ـ~(Ҁ$w(ˀm"!PF`|3 `l(fjh*@ <**+   [j8>nݻ O O E [, Z,0 <ʃ!O2zor!`zZ`orZ`"`zor)F(MРl )F(Fl )F(? m )F(8Рm)F`m)F`m)F|0 n)Fv#`dh4`;iB hS$04n65 <*XB hhpG-AF@F'O,9mh>+#nh>+-!(Fx`03`cmӱh#*h%*"* њi* %*Zhh#`F0F$h j-AFhFFeD<- 3iAF8FY<= pFjFDch1F(FZk$h pFFFbhy+ѧhSyD;+!(F`chF`h[kG``0Fr$h F F ch+h%F ?hB-h-hh90FJ( *F0F$h -A#F$!FFF #)F(BF1F(F(8F(1FF(F(IyDFF F( F-GFFFO @0-F,03H33[B-FB#"F(-y3F F #F#&CmF!F #(X T`H33[`;` 0``etS/B(5#D%09F0Zb00b0 0iFh#hBh` 5-3F -OLM|DdYj%h! K5{D  +s [h[k # hBc iS"0@,Vck+Ph+@L 0C -eh _k0BCBV  *6O @+FX/VB  0CE%4лY@i%+&+'jmGm,G:KE((((@, ,0S@ +-h# !)F( F(݀,   BM[?[ h [kmGx`:%*&*3j0/p(7𰀸,  B Ik: m GX`( +F2F(5  O (FO |H08F @jH0H0kH0Z"d#F{:F@F+Z#KFF(GFb!F(?E` !F(4E``&0FO90CBW/:#)F`Vb 6dh 3 h  5hB{mh- 7-O D FFFOaFHFF(v4$ 0B0S$0 X0;h+BFqkPFl4#HFrkik^F(Bkk P JO F8FskzDSFF(0$8FPF(#F$ik8F(#O3  8 i:Fa@F ? F GCFBF`$0aiE+skhoK{DmK{DBFI!# )F8Frk(h F ` 4ag%HFrkik#`(0 B@rkhkQhJ!PKBF#{D(F IF8Fjk"(w#rkikF(l И 0ԘFAFPF ~BFXF (N!F(Hkkh0B)!(F44 8FZOaFP "FF2 2@FX`K"J!#{DOO@Fn[A  R(FBpGi0T]kei;##i?ei,#h=, >,<,Cj2+3Cj2+33S`02#A"00-CFFF&0BD0S&0P-:kn+5kSkihjk hh{h@[D,4$,$"#18hL#"8hDCmh6 -OOFFhchE;iS(0P-"!0F{"#"   !2h8+9+ Cj+3Cj+33$h8+9+ Cj+3Cj+334`h:+;+уjCj+3lO +mO IFPFl۱iP}J@iQ 0S@ #+m۱iP}J@iQ 0S@ #klO lO QFXF{FkliP} iQ 0  HF ## liP } iQ 0  HF{ # #km+3i jmh;+* )$)))))))))))))))))&## #### # # # # #j 3#mKi!mh(+#+'+ +*+ ++ ,+### # # #kmj[ 3##jn*h-; +  ###### # # #j# # ##"m"1F(n"1FO h/V ! h( !Zh h(ـ  ! h(̀! h(ĀO  ! h( ! h(  O  !( h|(, ! hs(   ! hd(! h\(|! hU(u! hN(n! hG(g! h@(`! h9(YO  !Zm h.(N  ! h"(B! h(;! h(4! h p! h@! h ! h!! h"! h#! hPmh|p hD8d %7D FFYkR8"ik F0 0FFFoF!%jkh *bjBZn*Yk8F/(-hcj$jmF YkhF"(ch+Zn$h,2FYk(F( BhKhllpGpF F,.Уh++&hchll DdhchQjl DSb"ih2hjRknGh%i 5chl3hH0[k[mGh`$h ppF Fh!F3p#D``F`(1p0 Cp0p-AF Fh!FF%D`F`Ca a0p0(F+Cp0a`"`B``Ca pG@hpG-O FFh@FS(, 8 hHFJ(#h8FB( x hPF9(hheihp0@F1(-hh]heihp0HF!(-hhimihp0ЋyPF(ဣhh 8F(؀-hqhp06h.8F(%h5ih y+KyD;+ s0+ЋyPF8F@FHF(-h.&ehciO6hh*FIkh(cihhIkh (rcihhKk%ihC!H"cih (F2K{DF@#*FhIk(Ih@+Kk$ihB!H"# !K{D!@#*FhIk0h@+kk$ihv"D!3H3# K{D F IhhyDh`!h(FM ah(FF0 'N~--AF8F F(X#++%kih ++0F Eh`-hi+ %cB'"F!F8F( F2h]hi'+hhShh+khh+F:!0hF()FhhOS% ++0F(hC5-CFFmFE!FhF(9iFx& 0B# 0S&pj!@FubiTah@FmCx[H``$h|iG<:/tttu΢pF-Fh@F hH mG"#FC,Bj2Ch2F!jU``( Fp-O8FFFF#%+!(hF jC`(#0!+ѣi+}hШh, joGC D"+jѣi+ghh^h3&+njGFh, ah0GC  ` TF0F, ahGjA1(!(hF(hFRmG1Fb F1F#F"(hF(YFSF:FIF(Fr(i3F"(h(?wYF` pFFh!F ph0F[mG"b!hj``( FpF FF F!haF 8Fm)Fb F"ihj``( F-OF F-v+i!+@.6.=hh.eihi/'9F hF(Y)FO+51F/ FF(I F(C 0C(E+/0A܀B.khi/Ah9F h~F(&)F?QF2F FoF( FF(Fi hF(AF#YF Fs( 0C&6Be"+@,.lhh/ۂ^h.ׂ#2Fy! hGF(̂1Fih hK(‚#AF`shia F9F(𳂷 9Fhshi+0khi+,2F! hlF()F#+Fih iB33F"9F hgF()F1F FF(wkhh. hh/l^h.h2F ! h0F(_1FAF FF(T"9F˼.@hF_h/B0"!jh'F(4! FxF(,)FW{h1F Fs`F(;F" hF()FA1F FF( AF" FgF( FF(AF" FWF( FoF(2F%! hF(ށ)F 1F FYF(Ӂ AF" F*F(\¹! FF()F{hQF F02F(;F" hF()FQF FF(AF" FF( F F(AF" FF(} FF(vRF%! hnF(k)FAF FF(`! FF(X)F{hQF F0F(J;F" h&F(A)Fl9F FF(4CF(F((@. hh)#[h+".khi+)F F>.A߀hh._h/3&+;&+Aˀ3F>FF 1FhPxhFhhB& 1Fh(:F ! hF(Ҁ)F1F FMF(ǀxheFhhaE*F9F F$+@&.zhh/! F(0 hIFF()F& 3NEGYF2F FF(x FF(q:F%! hi(f)F F FZ`(X 0C&B"9F h,(G9Fr FFF(;6AF_%.Akhi+@hh.(_h/$ hF()F%@shi+1F*F FlF( FFF{hi+9F*F FWF( FoF鿹F0i+AF*F FAF(ڇ FYԿ@FRFKF%! hF(ȇIFQF FC( 0C%5BYFܿ(+@,y.Eh𧇸0&+@Mh mGh mGF1FF h')FOE 7 hCD[h!lhhFRFGx.)F FpD.hh+Y"F!F hF(N)Fy1F FF(C#6!H.?hh.7O3F2FF! hF())FT"ihjx`(9F FF(CFF7! hF( 9F4AF FF("F.@hh.sh'WE71F:F FFF(߆ F^F(؆AF:F F6F(φ FNF(ȆIF" hF()FIF F:(C'7/پ" hF()F1F FF(// " hjF()F9F FF(z"1F hV$@.#hVh.lh+h1&)&) h*Z'>! h2khi+khi+)F Fq(F;F()F FfU. )F F^?8.hh.%2F ! hF()FGAF FF(2F?!𺽦S+)F Fy01.)F Fy(4.)F Fy 5.)F Fys6.)F Fy;.)F Fy<.hh.Ӆ#2F:! hCF(ȅ)F9F FCF("A=.=hh)^h.3F" hF()F9F F"F(#">! F$F("QF hF()F1F FF(:F ! h^F()FAF FF(2F%! h{+0.k+hh)q+F")kZh*g+F Fy~-.3hh.[#2F+! hF(P)F{9F FF(E#2F,! hF(:)Fe1F FF(/"9F..Phh.%3F"1F hF()FF9F FF(! FF(;F" hF()F(9F FxF('6!;F hbF()FAF FbF(܂2FR/.@hh.т3F"1F hF(ǂ)F9F FBF(! F,F(;F" hF()F9F F$F('6!;F hF()FAF FF(3F0!12+Nkh hAFF(w+ &)FFE9/hS")g2F FF(_ F(YhC&63)+(, */&+@! hSF(>)Fi,jb9F[.+@#hhhFh.%F hF()FH)F hjF(j")Fb3Fb F3F(h`hh(@ˁ"ihjh`(O  E)F h F(FF4(فkxZ@ׁ#h9Fbh(F(@΁kx[@`h)F0F(`h)F0G!chhBہiS! 2h3h7xhB 8h;F`hXhB hF`1/+@Āh_h/8{h2;3+-JF3! hF(|&9F9F2F FF(o F(i 0C&6NEAF F([h)FX`%BF%+hh*jj&[y> +)F hF(7j!a3)Fb FCF((h`AF %+hh) h<F(F hdF( j")Fb3Fb FCF([9F" hF(h)F` h<(倳jjbjC3۲c2bC c )+QhhnkB@hhfF h&F(&)FFE4hS(p/xhM( 0 C&pO xh  =E9FZF FF( F(  B*VFIF1+4hh.wrhkhhh))@+@+i FL F(_*iR!a"2F+@2Fx!# hF(K)Fw1Fo,+kh F: iF(:)F5Fe-+hh]8F[(FY,+ h, hS"`.K)F0FIF/έrhi*ɭ=0F `j3K !{D2ik +9F hNF(FfFƾƾƞ,0C JDb ,0 0C)p  QF FV0F k-A F8F F(;+++#,kah ++0F$2``$hhOS$ ++ 4kB(F F0F(hC)F0F (FF,F"F)F8F( F-OFKhFhh.Q_h/NYFhF(G%AF]E:shi+ 1F*F FF FF0F{hi+ 9F*F FF FF;F IF hIFZ FF` 0C%5QF FO  FFPhF*FF!0hF9F+40,D+"B/)F0F@u-AFhFh Y#(+ѣi:+P&"F3F8!(hPF(9FchAF(F0NF(3F:!(h:F(9FAF(F;F("F3F9!(h&F(9F!F(F'F(CF"(h~F(9F!F(FA F-O FIFjh)hBIFhF( &)FNE*QF2F FF( FF(#Fi hF(9F|YF F( 0C&6AF)_h/ЀʀYFhF(€&)FS^EC{hi+9F2F F}F( FFF0i+AF2F FhF( FFCF"iJF hj(IF FFi(} 0C&6QFohi/pkfFh/F(_&)FBQ{hi+ 9F2F FF(L F3FFF0i+ AF2F FF(8 FF2CF i* IF2F FF F HFRFi hQF FF` 0C&6YF FO -CFh Fh _h/Ћi+3F"+3F"9F*rhi*#+O;F2F Q!R!h OT OS F(1FX9F FF(CFIFX+*3F"9FhF()F>AF FF(1F;F" hF()F+1F F{F(">!BF+;F"1FhF()FAF FcF(3F"9F hF(?x)F1F FOF(?m"?!BF h9)M+;F" N+;F"Q+;F"R+ 1F;F"hF(?J)FP+;F"O+;F"1F hxF(?7)F1F FC Khi+ "+CCFpFh Fh! Fx3F" hCF@)F1F Fp@ٸ p-AF FFFrHh F FF1Fn0*1 F"hF 1F^AF FF(3Fz F(F)F" hF(1FB)F FA FF-O  FFFF!FHF(2IF 3 (#K{D hBhS"Pj+2j,/h*nYh2nB("-*hhhZ`h`#"+@̀i;+ǀh D( Kh hF(!FbF+h+uЛhXh6(Fl ` '@"!XFw+h hjFK'(+hh+h"hYhq(~+hhk0 ! )(qТh`:FahX`(eF$hF(Z7D`WE+hQF h(I+h[$ hhC$ 4TE+h)!ha+hh+`-h3?' $hB#hS'@j!@FFbiUih@F>Cx[Hh`-hdiO FH3F\dFX 0FO hx*h * nn8(O O #"FAF8F(-GF@O,p0Fan:F :Fm0F|(:F!n0Fu(;Fbn!F0F(;Fm!F0F(;F"n!F0F}(}al*F0FU(*Fl0FN(*Fl0FG(*F!m0F@(*Fam0F9(*Fm0F2(+Fbl!F0FJ(+Fl!F0FB(+Fl!F0F:(+F"m!F0F2(+Fbm!F0F*(+Fm!F0F"(?|t  H55mY@E7 F$#*FIF0F (S:F0F(?K:F 0F(?BE:FY0F(6;FU/!F0F(?-;F*i!F0F(?$;F*j!F0F(?UE$h  0 FK{D#K{DF <(ЫhZC;* )iX Ih:; F0Bh(+ѐi XBXApG pG-AFiF-O(F(H.i.E1h)Bи hDR B6݈hB33BFhxhH3\khjhdt!SB11)!#F"8hy"bqCyb۲CCq3h`0`F-h FFF1F  K !:F{D0F?(+h(+h \`@,`!F0F}( F-GFFFF  fK !:F{D0F(kh%`c`kh `@knl`+h-: *#@@2@*@@@񖀫m eehCs`h#s`mSk;Sc0C2b00XC: b0 MiF/R;h+OhREJњh :` h2*F[CB9Ѳ 0H hO *Fph  OJ t!SB11)!SF"0h(?Zy"bqCyCCq;h`8`FHFTkncf#kfhCs`h#s`bnSk;Sc!F0F(?0 F!hhhhpG i[hhBрh` Kh`hFFi F@hh]K'FFF`;Fh@F y"1FbqCybCqi 0бi1F 0i+hBFhF"hhB hhB!h"F1F(hF(C{!FCCsi0i"F1F 00 #` `ih` -GFFF F  $tO T?KEгBDE2F0!F8F3H33[#y(FF$jF9Fh! Q?h9*BYj)1B v:F1F(F>0 h(  F)7Mj !h-,F MC2FBmn9FOj/7)Dhqp)pBȿBh* 8 F h9+<+ljh,!Fdhlb8-AFFFF +6h<*3(1h9*.Yj@j)1(0B!(h# `C``3h`0`h-h!Fh(1Fh8FV0  -OF$!hvF 9h:($FF`{hhEi  S+P-kn+rwkiJF1F8Fm0CF(ЫiJF1F8Fm0CFw(iJF1F8F#n0CFi(+jJF1F8F#n0CF[(kjJF1F8Fm0CFM(ЫjJF1F8Fm0CF?(jJF1F8F#n0CF1(?}+kJF1F8F#n0CF"(mh1+-;++FO SFTFmhFv  g0Fp FFF!h&F p1F!F(h( Fp-OFFFh<+m0<"Oah`e(hCc`m+n0<"OahK(f(hCc`/n/$!piF(zF aEarm a aP?h(\YF# # yzbBF h"(Gah0F/gF(=СhF0FKy#hAx"j #i0F:D#*FH33[#)+Fbhh0F}+Fbh!i0FvH+Fbhai0Fo0 -A FhFFhh#"Fh#@#FBF9F0FN0   F F@y-AFh FFFP(,CF2F!Fh0+[m:n*Rh<)  !#h+Sj2h+3  XO *m9n9O33`@4e" h<* hIjh)1h3`c@4eP$@ 0(ѯ -OFlO2FhF.:2h*96B6 h{h\hy+Ѵ0h3H33CSy Fkm"hi(h@$hBF!F(F( "F&+FBFIF F(@6#BFIF F(@2+F2FIF F(@*#2FIF F(@+F2FIF F(@h@#@% P#2FIF FwF(@+F2FIF Fw(@#BFIF Fw|F(@F2FIF Fwp F(@ׁ:FIF FBF(@ЁF:FIF FwZ(9;cmi(BF hlF(ҁFJF Fi0 0+_0JF9F Fhh(0YF FgQ.F%@ 0-@O "O2CL-AFhhC `U#0+&]h0*F F# ;(q+FBF9F F(h+FBF1F F(_+FBF F{(VZF (L[hS39ii=k{(F-h.F ghhB ;iS&0Pű W@F@F9iOEm@F)n@Fmh6O O F hE9iQ+Pj+fj2hh+nn3B_#Q 0  .I   KFPa KF iX BB%vh.(0+,0C 0h`0n3B;i X`+F i hg(;+%F   F?h#0 0+?ޮ.?t#RIE3"F# 0Zb00b03+}>F%AF F5F(TJF9F9# hkF(D+A*F FH3[C#$0GF.F|7Fy7FxFFGFt7FFFr p$O z F=#%GF%&Z#h#g pGCh i@8pGpF`!FF p`(!h&`C` #a(F`a()F9()F82((Fe(#"` Fmaep0@BiR!h hpGpFF1FF(F S_ hB#F`#FS0B R`B p pFF0 FFF8` F" 0P?B2`2*s FQjFF)1ihaj+##*C"@ 2F(F/0 p$FFF%FO1O\$0ch9* Zh:YjC)14,хk"# +F:F0F0  -AFPF-Fе *F H mOh4Hd*njh<+CF1F8F}( h<+#F1F8F@CF1F8Fg(#F$1F8F(-h  F h9+<+ aj)1cjBhcbpFihBMhIF phaiufa%ah ! hs`7F(Сm hfF(ci*FC&P#`O3`8.`k` ((Fp-AF FFFF2FF)F 4G$P-OFghFhTMB}Dܠ`sQK h{DPK{DSF ("i h(9Fbhm hCKX#AK{D7(   O{hAF hh #ZCm 2F(#8 `iRF1FHF?CF#qhXFpSFE`*F1FHF(УhB5`6h#OH+ТhchB (&0B0S&0Pű W F F9iOEm F)n Fmh6 ڝa|QepG)1@h8FIjF@h#XCihBX1PiD`88FIjF@h#XCiDhBYh1Y`iD`8𵇰F$+BMF *F"Fy8#hC`F` F-OF F$FF+O> ObObAFhF(;Dbb3h  5h<*YjxhHEO O! O 3hsD 3 3hsDh{jBF3hyihD 0h $#3`-CF hF FF(*Hh9+EQj@hCHEF>+h!![ha"aZk+h"[h9F h:#[F #$!i i61i(+h:Faih[hh `iYhVh 0#ih`h#+` -AFIj'FF@hGCiF:Di  2(F3F@*hai hF $*FiF:D(5'CF2F)F Ft(CF2F Fj(75/-GFIj&FF@hFCiF3Di+8FCF8zhai hFx:FCnCFCFai hF(kТi)F<2D(bУi hDQFF(WF hF(P! h(J"b&0)Fb0#F h(2##")F h{H Orb)FhCS`7# hjbKF*F\ Fp#*F`KF Fv  -O X F0FHF1 (ҁ x !FPF(Ɂ!DhYC9(%0B:0S%0@,0 W"1 h9+0F9i"1 h9+0F_Em"1 h<+0F!n"1 h<+0Fdh5\hh,Ncn+!FPFH%h1+0F(2!FPF{FF0FYF0Fq0 +"FCFF!FHFgH!FHFY"FF0Fn0$h?= 'k{ 00 K[+; j@JA*B C/????jr zp0j1/KzZr'zj&z*rjr pqe*"0, 0 0000 `azf*b&jf*" zj  **0040<0/z00zqjrj pz'z&jq*rZj00 0000 0$0 `a*bz7zwjf zz * j,0/zzZJjz'J jZz$zzzzJJZz'z$zzz zJ J Zz'z$zzz J JZzzgzEzFzF zzzZJ jz'J jZz$zzzzJJZz'z$zzz zJ J Zz'z$zz z J JZzzgzEzFzF zzzZJ jz'JjZz$zzzzJJZz'z$zzz zJ J Zz'z$zz z J JZzzgzEzFzFzzzZJ jz'JjZz$zzzzJJZz'z$zzz zJ J Zz'z$zz z J JZzzgzEzFzFz/@0@-@  Q@  "000000 0 0/O-00-dM @  00 @0 0`ӛ Pp0 0'@H # 0 j pp@S K   00K@Yp K pK0Sj     zYJjZZjJgjf'Z%ZeJz'j&jZ'z'Zjzz'z'zz'zgzq zY*J*::JfGE*Ge:A*g:GFJG***::BJJJC zY *  :` * :EGbZJ*eZCZB:gZGb:czFzG JDj :Jfj zdz DzG Z Zj z0 :Jz JZZJ:GjjzJ :J:ZJGZ JJZZGjZjZjjGzjz0P`@ p00Yj >jmp PP48 <0`p V瞯< zYzj J jjJ z Z Z **j: j:JGJZZGj JJJ ZjG Z j jjz z@JzTz:Zj:GJJZzjJ::JGZGZjJJZZZjjGjjzz zjJjzJJ ZzZ jjJ:z J zJGZJJ ZZZGjZZ jjjGzj zN`FpG@PEA B0CL@Y}dЍdЍZ0JJ:zezT@zp eZDJZ'J -j:J Z z  !j! *ze# $j%z@'*%jeJg'* :jIJH*2: *H3Jsjr:":e!*eZ':!z' :I%*IZ@:z= jB*H*:fJfjZ"#H"JHz"#Z"zhd*:g(&g"JfEZGz'zg&jfj&A:AJ@zAj@jJJ4ZuJq:pIFjgzfj * :Z :J z *ZJjzj/P @-@@xwPp@-/ @0 PQ1 :@0 a *dJbjn@Lp0000 0000 00000$004000 00$0(0(080,0 000040,080<0<0p 0$`P0@ 4 08 ,0`$P @04, 80p JpG$B@BOFB(pB(pAB(ApB(poB(`oB(`AoB(A`oB(`_B(P_B(PA_B(AP_B(POB(@OB(@AOB(A@OB(@?B(0?B(0A?B(A0?B(0/B( /B( A/B(A /B( B(B(AB(AB(B(B(AB(AB(FpG  pG pGO0~)-@@pG)> HIBJHCBB@B#OF@(s@(sA@(As@(so@(co@(cAo@(Aco@(c_@(S_@(SA_@(AS_@(SO@(CO@(CAO@(ACO@(C?@(3?@(3A?@(A3?@(3/@(#/@(#A/@(A#/@(#@(@(A@(A@(@(@(A@(A@(H@BpGH@BpG8 Op@pG#H@BpG(ȿo@O@&)-@@pGSJ)(O1O0  m #pGOtCU33033D0 @pG-C FBFFFB< !jӱ)oе-g   GFCBB< ! O ) Ae+;O6 e$mA4E;нBB$mA; $ %%FFiAeF   $G Ga E 3 - FF t1 /X /9xGFx@-glActiveTextureglBindBufferglBindTextureglBlendFuncglBufferDataglBufferSubDataglClearglClearColorglClearDepthfglClearStencilglColorMaskglCompressedTexImage2DglCompressedTexSubImage2DglCopyTexImage2DglCopyTexSubImage2DglCullFaceglDeleteBuffersglDeleteTexturesglDepthFuncglDepthMaskglDepthRangefglDisableglDrawArraysglDrawElementsglEnableglFinishglFlushglFrontFaceglGenBuffersglGenTexturesglGetBooleanvglGetBufferParameterivglGetErrorglGetFloatvglGetIntegervglGetStringglGetTexParameterfvglGetTexParameterivglHintglIsBufferglIsEnabledglIsTextureglLineWidthglPixelStoreiglPolygonOffsetglReadPixelsglSampleCoverageglScissorglStencilFuncglStencilMaskglStencilOpglTexImage2DglTexParameterfglTexParameterfvglTexParameteriglTexParameterivglTexSubImage2DglViewportglEGLImageTargetTexture2DOESglMapBufferOESglUnmapBufferOESglGetBufferPointervOESglRenderbufferStorageMultisampleEXTglFramebufferTexture2DMultisampleEXTglEGLImageTargetRenderbufferStorageOESglBindVertexArrayOESglDeleteVertexArraysOESglGenVertexArraysOESglIsVertexArrayOESglDebugMessageControlKHRglDebugMessageInsertKHRglDebugMessageCallbackKHRglGetDebugMessageLogKHRglPushDebugGroupKHRglPopDebugGroupKHRglObjectLabelKHRglGetObjectLabelKHRglObjectPtrLabelKHRglGetObjectPtrLabelKHRglGetPointervKHRglGetPointervglDiscardFramebufferEXTglGetGraphicsResetStatusEXTglReadnPixelsEXT GL_LUMINANCEGL_ALPHAInvalid value of 'internalformat''format' does not match 'internalformat'Format %s can only be used with type(s): %s.GL_UNSIGNED_BYTE or GL_UNSIGNED_SHORT_5_6_5GL_BGRA_EXTGL_UNSIGNED_BYTEGL_RGBAGL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, GL_UNSIGNED_SHORT_5_5_5_1 or GL_UNSIGNED_SHORT_4_4_4_4GL_LUMINANCE_ALPHAGL_UNSIGNED_BYTE or GL_UNSIGNED_SHORTGL_DEPTH_COMPONENTGL_UNSIGNED_SHORT or GL_UNSIGNED_INTGL_DEPTH_STENCIL_OESGL_UNSIGNED_INT_24_8_OESMipmap level %i does not existIllegal value for width=%i or height=%iGL_TEXTURE_EXTERNAL_OES cannot with used with this function.'level' must be >= 0 and < %i. Was %i'xoffset' must be positive, was %i'yoffset' must be positive, was %i'width' must be positive. Was %i.'height' must be positive. Was %i.Attempting to modify miplevel %i on texture <%s>, but this miplevel was not uploaded to the texture object.With 'level'=%i, 'xoffset'+'width' must be <= %i, was %i+%i=%i.With 'level'=%i, 'yoffset'+'height' must be <= %i, was %i+%i=%i.'border' must be zero. Was %i.With 'level'=%i, 'width' must be <= %i, was %i.With 'level'=%i, 'height' must be <= %i, was %i.ETC textures with dimension %d*%d need %d bytes to hold the compressed data. However, 'imageSize' was %d.internalformatPaletted textures with %u texels per byte, %d * %d texels, and a palette size of %d bytes need a datasize of %u. However, 'imageSize' was %d.'level' must be 0 or negative. Was %i'level' must be < %i, was %iCannot modify mipmap because it does not exist.'level' must be >= 0 and <= %i, was %i'xoffset + width' must be less than texture width. Was %i.'yoffset + height' must be less than texture height. Was %i.'width' must be either a multiple of four or 'width + xoffset' equal to texture width. Was %i.'height' must be either a mutiple of four or 'height + yoffset' equal to texture height. Was %i.'xoffset' must be a multiple of four. Was %i.'yoffset' must be a mutiple of four. Was %i.'image' is not a valid EGL image.The EGL does not contain any data.GL_TEXTURE_2D cannot be used with an external image.'image's format is not supported.The texture with name %u (<%s>) was bound earlier with a different 'target'.height'width' and 'height' must be equal, was %i,%i.'%s' must be positive. Was %i.'level' must be >= 0 and < %i. Was %i.'x' must be positive, was %i.'y' must be positive, was %i.frame buffer is in protected mode, couldn't be copied out.The current framebuffer object (<%s>) is incomplete.Must be GL_RGBA, GL_LUMINANCE_ALPHA, GL_ALPHA, GL_LUMINANCE or GL_RGBCannot create color texture from framebuffer (<%s>) with no color channel.Cannot create texture with alpha channel from framebuffer (<%s>) with no alpha channel.16 bit frambuffer (<%s>) is not a legal reading target.Cannot write to non-existent surface.With 'level'=%i, 'width' must be >= 0 and <= %i, was %i.With 'level'=%i, 'height' must be >= 0 and <= %i, was %i.16 bit texture is not a legal writing target.frame buffer or texture surface is in protected mode, couldn't be copied out.'n' must be positive, was %d.It must be GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFER.It must be GL_STATIC_DRAW or GL_DYNAMIC_DRAW.It must be GL_STATIC_DRAW, GL_DYNAMIC_DRAW or GL_STREAM_DRAW.'size' cannot be negative. Was %d.It must be GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFERusageThe buffer bound to 'target' is 0. It is illegal to modify this object.Can't modify a buffer which is currently being mapped.'offset' cannot be negative. Was %d.'offset' + 'size' cannot be greater than the size of the data in the object. offset: %d, size: %d, size of data: %d, object name: %s.It must be GL_WRITE_ONLY_OES.It is illegal to map zero sized buffer object.The buffer bound to 'target' is already mapped. It is illegal to map it again.Unpaired map and unmap operation.params can't be NULL.Unsupported pname value.Mali-400 MPMali-300Mali-450 MPMali-%d@ADEPQTUCBGFSRWV  LMHI\]XY ONKJ_^[Z0145 !$%pqtu`ade3276#"'&srwvcbgf<=89,-()|}xylmhi?>;:/.+*~{zonkj  c34Cannot read from framebuffer object with no color attachmentThe combination of 'format' and 'type' is not supported.'width' must be positive, was %d.'height' must be positive, was %d.'data' cannot be NULL.frame buffer is in protected mode, couldn't be read out.'bufsize' too small to read pixels, was %i, required %iglReadNPixels is only available in contexts allocated with robustnessA bit other than the defined masks (GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, and GL_STENCIL_BUFFER_BIT) was set as bitmask.'n' must be positive, was %i'buffers' must not be NULL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Cannot generate mipmaps, no miplevel 0 foundCannot generate mipmaps from protected surface.Automatic mipmap generation is not allowed on depth textures.Mipmap generation for external images is not supported.The texture object <%s> is not complete.Must be GL_POINTS, GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP or GL_TRIANGLE_FAN.mode'count' must be positive, was %i.Must be GL_UNSIGNED_BYTE or GL_UNSIGNED_SHORT.'first' must be positive, was %i.dOpenGL ES-CM 1.1GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_query_matrix GL_OES_matrix_palette GL_OES_extended_matrix_palette GL_OES_compressed_ETC1_RGB8_texture GL_EXT_compressed_ETC1_RGB8_sub_texture GL_OES_EGL_image GL_OES_draw_texture GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_OES_framebuffer_object GL_OES_stencil8 GL_OES_depth24 GL_ARM_rgba8 GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_rgb8_rgba8 GL_EXT_multisampled_render_to_texture GL_OES_texture_cube_map GL_EXT_discard_framebuffer GL_EXT_robustness GL_OES_depth_texture_cube_map GL_OES_vertex_half_float GL_KHR_debug GL_OES_mapbuffer GL_KHR_no_errorOpenGL ES 2.0GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_compressed_ETC1_RGB8_texture GL_EXT_compressed_ETC1_RGB8_sub_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_depth24 GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_OES_vertex_half_float GL_EXT_blend_minmax GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_rgb8_rgba8 GL_EXT_multisampled_render_to_texture GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_ARM_mali_program_binary GL_EXT_shader_texture_lod GL_EXT_robustness GL_OES_depth_texture_cube_map GL_KHR_debug GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_mapbuffer GL_KHR_no_errorOpenGL ES GLSL ES 1.00ARMMust be GL_TEXTURE_ENV or GL_POINT_SPRITE_OES.When 'target' is GL_POINT_SPRITE_OES, 'pname' must be GL_COORD_REPLACE_OES.pnameMust be GL_CLIP_PLANEi where 0 <= i < GL_MAX_CLIP_PLANES.plane'pointer' must not be NULLMust be GL_FRONT or GL_BACK.Must be GL_LIGHTi where 0 <= i < GL_MAX_LIGHTS.lightMust be GL_LOW_FLOAT, GL_MEDIUM_FLOAT, GL_HIGH_FLOAT, GL_LOW_INT, GL_MEDIUM_INT or GL_HIGH_INT.precisionTypeMust be GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.shaderType'index' must be < GL_MAX_VERTEX_ATTRIBS (%u), was %u.Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.'params' cannot be null.capMust be GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFER.The reserved buffer object name 0 is bound to target.Must be GL_BUFFER_SIZE or GL_BUFFER_USAGE.GL_TEXTURE_CROP_RECT_OES must be set with glTexParameterfv or glTexParameteriv.! !p!tu!tuvwx/)/)p&&''''&&Must be GL_MODULATE, GL_BLEND, GL_DECAL, GL_REPLACE, GL_ADD or GL_COMBINE.paramMust be GL_DOT3_RGBA, GL_DOT3_RGB, GL_REPLACE, GL_MODULATE, GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE or GL_SUBTRACT.Must be GL_REPLACE, GL_MODULATE, GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE or GL_SUBTRACT.Must be GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR or GL_PREVIOUS.Must be GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA or GL_ONE_MINUS_SRC_ALPHA.Must be GL_SRC_ALPHA or GL_ONE_MINUS_SRC_ALPHA.When 'target' is GL_POINT_SPRITE_OES, 'param' must be GL_TRUE or GL_FALSE.GL_TEXTURE_ENV_COLOR must be set with glTexEnv{f,i,x}v.With 'pname' = GL_TEXTURE_MIN_FILTER, 'param' must be GL_NEAREST, GL_LINEAR, GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR or GL_NEAREST_MIPMAP_LINEAR.External images only accept GL_NEAREST and GL_LINEAR as min filter.With 'pname' = GL_TEXTURE_MAG_FILTER, 'param' must be GL_NEAREST or GL_LINEAR.External images only accept GL_CLAMP_TO_EDGE.GL_GENERATE_MIPMAP is not a valid 'pname' under OpenGL ES 2.With 'pname' = GL_GENERATE_MIPMAP, 'param' must be GL_TRUE or GL_FALSE.Mipmap generation is not supported for external images.GL_TEXTURE_CROP_RECT_OES is not a valid 'pname' under OpenGL ES 2.Must be GL_TEXTUREi where 0 <= i < GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS.textureMust be GL_TEXTUREi where 0 <= i < GL_MAX_TEXTURE_UNITS.'size' must be 2,3 or 4, was %i.'stride' must be >= 0, was %i.'size' must be 4, was %i.'size' must be 2, 3 or 4, was %i.'size' must be > 0 and <= GL_MAX_VERTEX_UNITS_OES (%i), was %i.Must be GL_UNSIGNED_BYTE.It is not allowed for a VAO to encapsulate client vertex arrays'param' must be 1, 2, 4 or 8, was %i.Must be GL_PACK_ALIGNMENT or GL_UNPACK_ALIGNMENT.        funcopcodemodeAlphaMust be GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL or GL_ALWAYS.Must be GL_FRONT, GL_BACK or GL_FRONT_AND_BACK.sfaildpfaildppasssfactordfactorsrcAlphadstAlpha'size' must be >= 0, was %f.When 'pname' is GL_POINT_SIZE_MIN, 'param' must be >= 0, was %f.When 'pname' is GL_POINT_SIZE_MAX, 'param' must be >= 0, was %f.When 'pname' is GL_POINT_FADE_THRESHOLD_SIZE, 'param' must be >= 0, was %f.GL_POINT_DISTANCE_ATTENUATION must be set with glPointParameterfv or glPointParameterxv.'width' must be > 0, was %f. 'width' must be >= 0, was %i.'height' must be >= 0, was %i.bVWHXQbVWXQ'n' must be positive, was %i.Cannot alter framebuffer 0Must be GL_RENDERBUFFER'samples' must be <= %i, was %iMust be GL_RENDERBUFFER.Cannot get parameters when the reservered renderbuffer object 0 is boundThe EGL image has no data source, and is thus not legal to useThe format of the input EGL image is not writeable.The surface's format is not supported.image width must be <= %i, was %iimage height must be <= %i, was %iCannot alter renderbuffer 0.bVWXQH Must be GL_FRAMEBUFFERWhen 'renderbuffer' is non-zero, 'renderbuffertarget' must be GL_RENDERBUFFER.renderbuffertargetCannot modify framebuffer 0No framebuffer with name %u was found.textargetOnly mipmap level 0 is supported, was %iNo texture with name %u was found.The 'target' parameter is GL_TEXTURE_TARGET_2D, but parameter 'texture' refers to a texture (<%s>) of dimensionality GL_TEXTURE_CUBE.The 'target' parameter is GL_TEXTURE_TARGET_CUBE, but parameter 'texture' refers to a texture (<%s>) of dimensionality GL_TEXTURE_2D.Must be GL_FRAMEBUFFER.Cannot query framebuffer 0Not supported when the attached object's type is not GL_TEXTURE or GL_RENDERBUFFER.Not supported when the attached object's type is not GL_TEXTURE.The framebuffer <%s> is not complete.'numAttachments' must be positive, was %i.Invalid attachments pointer for framebuffer object <%s>.Invalid attachments for framebuffer object <%s>. %s:%s:%s:%sErrorWarningPerformanceInformationInvalid typeInvalid 'bufsize' and 'messageLog' combination. bufSize must be > 0 if messageLog is not NULL, was 'bufsize'=%i and messageLog!=NULL.'%s' argument was not a valid GLenum for this function. %sDriver ran out of memory.Must be an GL_DEBUG_SOURCE_* GLenum or GL_DONT_CARE.sourceMust be an GL_DEBUG_TYPE_* GLenum GL_DONT_CARE.Must be an GL_DEBUG_SEVERITY_* GLenum or GL_DONT_CARE.severity'count' must be >= 0, was %i.With 'count' > 0, 'ids' cannot be NULL.When IDs are specified, 'source' must be GL_DONT_CARE.When IDs are specified, 'type' must be GL_DONT_CARE.When IDs are specified, 'severity' cannot be GL_DONT_CARE.Must be an GL_DEBUG_TYPE_* GLenum.'buf' cannot be NULLThe length of the string must be < %i, was %i.Must be GL_DEBUG_SOURCE_APPLICATION_KHR or GL_DEBUG_SOURCE_THIRD_PARTY_KHR.Must be an GL_DEBUG_SEVERITY_* GLenum.Max stack depth (%i) has been reached, cannot push another group.'message' cannot be NULL.Illegal attempt to pop default group.The length of the labels must be > 0 and < %i, was %iGL_SHADER_KHR is not supported in OpenGL ES 1.1.GL_PROGRAM_KHR is not supported in OpenGL ES 1.1.GL_TEXTURENo %s with name %u was found.GL_BUFFERGL_SHADER_KHRidentifierGL_PROGRAM_KHRunnamedError:::Driver ran out of memory trying to output a debug message. Subsequent messages might be lost.glAlphaFuncglAlphaFuncxglClearColorxglClearDepthxglClientActiveTextureglClipPlanefglClipPlanexglColor4fglColor4ubglColor4xglColorPointerglDepthRangexglDisableClientStateglDrawTexfOESglDrawTexfvOESglDrawTexiOESglDrawTexivOESglDrawTexsOESglDrawTexsvOESglDrawTexxOESglDrawTexxvOESglEnableClientStateglFogfglFogfvglFogxglFogxvglFrustumfglFrustumxglGetClipPlanefglGetClipPlanexglGetFixedvglGetLightfvglGetLightxvglGetMaterialfvglGetMaterialxvglGetTexEnvfvglGetTexEnvivglGetTexEnvxvglGetTexParameterxvglLightfglLightfvglLightModelfglLightModelfvglLightModelxglLightModelxvglLightxglLightxvglLineWidthxglLoadIdentityglLoadMatrixfglLoadMatrixxglLogicOpglMaterialfglMaterialfvglMaterialxglMaterialxvglMatrixModeglMultiTexCoord4bglMultiTexCoord4fglMultiTexCoord4xglMultMatrixfglMultMatrixxglNormal3fglNormal3xglNormalPointerglOrthofglOrthoxglPointParameterfglPointParameterfvglPointParameterxglPointParameterxvglPointSizeglPointSizexglPolygonOffsetxglPopMatrixglPushMatrixglRotatefglRotatexglSampleCoveragexglScalefglScalexglShadeModelglTexCoordPointerglTexEnvfglTexEnvfvglTexEnviglTexEnvivglTexEnvxglTexEnvxvglTexParameterxglTexParameterxvglTranslatefglTranslatexglVertexPointerglCurrentPaletteMatrixOESglLoadPaletteFromModelViewMatrixOESglMatrixIndexPointerOESglWeightPointerOESglPointSizePointerOESglQueryMatrixxOESglGenFramebuffersOESglIsRenderbufferOESglBindRenderbufferOESglDeleteRenderbuffersOESglGenRenderbuffersOESglRenderbufferStorageOESglGetRenderbufferParameterivOESglIsFramebufferOESglBindFramebufferOESglDeleteFramebuffersOESglCheckFramebufferStatusOESglFramebufferTexture2DOESglFramebufferRenderbufferOESglGetFramebufferAttachmentParameterivOESglGenerateMipmapOESglTexGenfOESglTexGenfvOESglTexGeniOESglTexGenivOESglTexGenxOESglTexGenxvOESglGetTexGenfvOESglGetTexGenivOESglGetTexGenxvOESglBindVertexArrayOESglDeleteVertexArraysOESglGenVertexArraysOESglIsVertexArrayOESglQueryMatrixxOESglCurrentPaletteMatrixOESglWeightPointerOESglMatrixIndexPointerOESglLoadPaletteFromModelViewMatrixOESglIsRenderbufferOESglBindRenderbufferOESglDeleteRenderbuffersOESglGenRenderbuffersOESglRenderbufferStorageOESglGetRenderbufferParameterivOESglIsFramebufferOESglBindFramebufferOESglDeleteFramebuffersOESglGenFramebuffersOESglCheckFramebufferStatusOESglFramebufferTexture2DOESglFramebufferRenderbufferOESglGetFramebufferAttachmentParameterivOESglGenerateMipmapOESglDiscardFramebufferEXTglDrawTexfOESglDrawTexfvOESglDrawTexiOESglDrawTexivOESglDrawTexsOESglDrawTexsvOESglDrawTexxOESglDrawTexxvOESglMapBufferOESglUnmapBufferOESglGetBufferPointervOESglFramebufferTexture2DMultisampleEXTglRenderbufferStorageMultisampleEXTglTexGenfOESglTexGenfvOESglTexGeniOESglTexGenivOESglTexGenxOESglTexGenxvOESglGetTexGenfvOESglGetTexGenivOESglGetTexGenxvOESglGetGraphicsResetStatusEXTglReadnPixelsEXTglDebugMessageControlKHRglDebugMessageInsertKHRglDebugMessageCallbackKHRglGetDebugMessageLogKHRglPushDebugGroupKHRglPopDebugGroupKHRglObjectLabelKHRglGetObjectLabelKHRglObjectPtrLabelKHRglGetObjectPtrLabelKHRglAlphaFuncxOESglClearColorxOESglClearDepthxOESglClipPlanexOESglColor4xOESglDepthRangexOESglFogxOESglFogxvOESglFrustumxOESglGetClipPlanexOESglGetFixedvOESglGetLightxvOESglGetMaterialxvOESglGetTexEnvxvOESglGetTexParameterxvOESglLightModelxOESglLightModelxvOESglLightxOESglLightxvOESglLineWidthxOESglLoadMatrixxOESglMaterialxOESglMaterialxvOESglMultMatrixxOESglMultiTexCoord4xOESglNormal3xOESglOrthoxOESglPointParameterxOESglPointParameterxvOESglPointSizexOESglPolygonOffsetxOESglRotatexOESglSampleCoveragexOESglScalexOESglTexEnvxOESglTexEnvxvOESglTexParameterxOESglTexParameterxvOESglTranslatexOESglDepthRangefOESglFrustumfOESglOrthofOESglClipPlanefOESglGetClipPlanefOESglClearDepthfOESglGetPointervKHRglMultiTexCoord4bThe stack for GL_MATRIX_PALETTE_OES is maximum 1 element deep, ergo push and pop do nothing.Cannot pop the last matrix'nearVal' must be positive, was %f.'farVal' must be positive, was %f.'left' is equal to 'right''bottom' is equal to 'top''nearVal' is equal to 'farVal'Generating mipmaps with format %s is not supported with type GL_UNSIGNED_SHORTMust be GL_TEXTURE_2D or GL_TEXTURE_EXTERNAL_OES.With 'pname' = GL_FOG_MODE, 'param' must be GL_LINEAR, GL_EXP or GL_EXP2.With 'pname' = GL_FOG_DENSITY, 'param' must be >= 0, was %f.GL_FOG_COLOR must be set with glFogv.Must be GL_FLAT or GL_SMOOTH.Must be GL_FRONT_AND_BACK.params is NULLWhen 'pname' is GL_SHININESS, 'param' must be >= 0 and <= 128, was %f.Must be GL_SHININESS.When 'pname' is GL_CONSTANT_ATTENUATION, 'param' must be >= 0, was %f.When 'pname' is GL_LINEAR_ATTENUATION, 'param' must be >= 0, was %f.When 'pname' is GL_QUADRATIC_ATTENUATION, 'param' must be >= 0, was %f.When 'pname' is GL_SPOT_EXPONENT, 'param' must be >= 0 and <= 128.When 'pname' is GL_SPOT_CUTOFF, 'param' must be in the range (0, 90) or equal to 180.Must be GL_LIGHT_MODEL_TWO_SIDE or GL_LIGHT_MODEL_AMBIENT.Must be GL_LIGHT_MODEL_TWO_SIDE.Must be GL_CLIP_PLANEi where 0 <= i < GL_MAX_CLIP_PLANE.'index' must be < GL_MAX_PALETTE_MATRICES_OES (%i), was %i.gles: BUILD=RELEASE ARCH=arch_011_udd PLATFORM=default_7a TRACE=0 THREAD= GEOM=mali_gp_geometry_common CORES=MALI400 USING_MALI400=1 TARGET_CORE_REVISION=0x0101 TOPLEVEL_REPO_URL=7ff1b92 REVISION=7ff1b92 CHANGED_REVISION=7ff1b92 REPO_URL=heads/for_defect_156662_on_mali_r7p0_linux BUILD_DATE=2018年 04月 09日 星期一 11:04:11 CST CHANGE_DATE=2017-11-14 11:50:00 +0800 TARGET_TOOLCHAIN=arm-linux-gcc-hf HOST_TOOLCHAIN=gcc TARGET_TOOLCHAIN_VERSION=gcc version 4.7.1 (Ubuntu/Linaro 4.7.1-5ubuntu1~ppa1) HOST_TOOLCHAIN_VERSION= TARGET_SYSTEM=gcc-arm-linux HOST_SYSTEM=gcc-x86_64-unknown-linux CPPFLAGS= CUSTOMER=internal VARIANT=mali400-gles11-gles20-neon-linux-wayland-drm-dma_buf-px3se HOSTLIB=direct INSTRUMENTED=FALSE USING_MRI=FALSE MALI_TEST_API= UDD_OS=linux glAttachShaderglBindAttribLocationglBlendColorglBlendEquationglBlendEquationSeparateglBlendFuncSeparateglCompileShaderglCreateProgramglCreateShaderglDeleteProgramglDeleteShaderglDetachShaderglDisableVertexAttribArrayglEnableVertexAttribArrayglGetActiveAttribglGetActiveUniformglGetAttachedShadersglGetAttribLocationglGetProgramInfoLogglGetProgramivglGetShaderInfoLogglGetShaderivglGetShaderPrecisionFormatglGetShaderSourceglGetUniformfvglGetUniformivglGetUniformLocationglGetVertexAttribfvglGetVertexAttribivglGetVertexAttribPointervglIsProgramglIsShaderglLinkProgramglGetProgramBinaryOESglProgramBinaryOESglReleaseShaderCompilerglShaderBinaryglShaderSourceglStencilFuncSeparateglStencilMaskSeparateglStencilOpSeparateglUniform1fglUniform1fvglUniform1iglUniform1ivglUniform2fglUniform2fvglUniform2iglUniform2ivglUniform3fglUniform3fvglUniform3iglUniform3ivglUniform4fglUniform4fvglUniform4iglUniform4ivglUniformMatrix2fvglUniformMatrix3fvglUniformMatrix4fvglUseProgramglValidateProgramglVertexAttrib1fglVertexAttrib1fvglVertexAttrib2fglVertexAttrib2fvglVertexAttrib3fglVertexAttrib3fvglVertexAttrib4fglVertexAttrib4fvglVertexAttribPointerglIsRenderbufferglBindRenderbufferglDeleteRenderbuffersglGenRenderbuffersglRenderbufferStorageglGetRenderbufferParameterivglIsFramebufferglBindFramebufferglDeleteFramebuffersglGenFramebuffersglCheckFramebufferStatusglFramebufferTexture2DglFramebufferRenderbufferglGetFramebufferAttachmentParameterivglGenerateMipmapglGetnUniformfvEXTglGetnUniformivEXTglGetProgramBinaryOESglProgramBinaryOESglGetnUniformfvEXTglGetnUniformivEXTThe 'program' name must be generated by OpenGL.The 'program' name must be the name of a program object.The 'shader' name must be generated by OpenGL.The 'shader' name must be the name of shader object.The 'program' name must refer to an existing program.Program must be linked before this operation can be done.The shader is already attached to the program.Two shaders of the same type cannot be attached to one program.Cannot detach a shader which is not attached.A program cannot be linked unless there are any shaders attached to itL0100A program needs a fragment shader and a vertex shader to be linked, this program object (<%s>) had neither.GLSL allows exactly two attached shaders (one of each type) per programA program needs a fragment shader and a vertex shader to be linked, this program object (<%s>) had 1 shader.All attached shaders must be compiled prior to linkingL0101Both shaders need to be compiled for a program to be linkedProgram is not successfully linkedValidate: 'bufsize' must be >= 0, was %i.Cannot get parameter from program object with reserved name 0.'maxCount' must be >= 0, was %i.You cannot query Program object #0The buffer was too small, was %i, needed %i.Only supported format is GL_MALI_PROGRAM_BINARY_ARM.binaryFormatInput data to glProgramBinary is emptyAn error occured while trying to load program. See program error log (glGetProgramInfoLog) for more information.Input data to glProgramBinary is not recognizedInput to glProgramBinary is corrupted - no MBS1 block foundInput to glProgramBinary is corrupted - invalid BATT block foundInput to glProgramBinary is corrupted - incorrect BATT block foundgl_PQRSTUVWXYZ[\'location' must be >= 0 and < %u, was %u.'bufSize' must be at least %d bytes for this uniform locationfvf[v]floatintivec(i|f)[v]boolbvecInvalid type. %s variable must be set with glUniform1%s.Invalid type. %s%u variable must be set with glUniform%s%u%s.The value set to a sampler must be < GL_MAX_TEXTURE_UNITS (%i), was %i.gl_mali_ViewportTransformgl_mali_PointSizeParametersgl_mali_ViewportMatrixgl_DepthRange.neargl_DepthRange.fargl_DepthRange.diffgl_mali_rotateThe program must be successfully linked for this operation to be legal.Invalid 'index' parameter, must be < %u, was %uYou cannot set uniforms on Program object #0.Invalid uniform location specified by 'location', was %i.Count must be 1 when the uniform to be modified is not an array, was %i.Only glUniform1i and glUniform1iv can be used to set variables defined as sampler types.glGetNUniform*EXT is only available in contexts enabled with robust access.'name' starts with the reserved prefix "gl_".The 'program' parameter must be a name generated by OpenGL.The 'program' parameter must be the name of a program object.This function is only valid on successfully linked programs.Parameter 'index' must be a value in the range 0 <= index < %u for the given program object.The 'program' parameter must be the name of an existing program.Not enough attribute locations availableL0004The 'shader' name must refer to an existing shader.The 'shader' name must be the name of a shader object.Cannot get source from shader with reserved name 0.'bufSize' must be >= 0, was %i.May 29 2018-14:30:59Cannot get parameter from shader object with reserved name 0.Must be GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH or GL_SHADER_SOURCE_LENGTH.shaders is NULLshader count is negativeshader length is negativebinaryformat must be GL_MALI_SHADER_BINARY_ARM, was 0x%08XIt must be <= 1 vertex shader in the binary, was %iIt must be <= 1 fragment shader in the binary, was %iNo shader with name %u (element %i in 'shaders' argument) exist.The object with name %u (element %i in 'shaders' argument) is not a shader object.Corrupt binary shader format.gles20: BUILD=RELEASE ARCH=arch_011_udd PLATFORM=default_7a TRACE=0 THREAD= GEOM=mali_gp_geometry_common CORES=MALI400 USING_MALI400=1 TARGET_CORE_REVISION=0x0101 TOPLEVEL_REPO_URL=7ff1b92 REVISION=7ff1b92 CHANGED_REVISION=7ff1b92 REPO_URL=heads/for_defect_156662_on_mali_r7p0_linux BUILD_DATE=2018年 04月 09日 星期一 11:04:11 CST CHANGE_DATE=2017-11-14 11:50:00 +0800 TARGET_TOOLCHAIN=arm-linux-gcc-hf HOST_TOOLCHAIN=gcc TARGET_TOOLCHAIN_VERSION=gcc version 4.7.1 (Ubuntu/Linaro 4.7.1-5ubuntu1~ppa1) HOST_TOOLCHAIN_VERSION= TARGET_SYSTEM=gcc-arm-linux HOST_SYSTEM=gcc-x86_64-unknown-linux CPPFLAGS= CUSTOMER=internal VARIANT=mali400-gles11-gles20-neon-linux-wayland-drm-dma_buf-px3se HOSTLIB=direct INSTRUMENTED=FALSE USING_MRI=FALSE MALI_TEST_API= UDD_OS=linux   C    c43 A@B,d  CC MBS1pCFRAhFSTAFDISFBUUSUNISVARDBIN%              @  ??&????????,The fragment shader is damaged, corrupt VERS block detected.L0001Shader is corruptedM0001The shader contains unknown blocks. Shader version mismatch?The shader is rejectec because the driver does not supports all the features in the shader.The vertex shader is too new for the driver.Binary shader is emptyNot a Mali binary ShaderCorrupt binary shader streamThe fragment shader is damaged, corrupt CFRA block detected.The fragment shader is compiled for an unknown core.The fragment shader is damaged, corrupt CVER block detectedThe fragment shader is damaged, corrupt FSTA block detected.The fragment shader is damaged, corrupt FDIS block detected.The fragment shader is damaged, corrupt FBUU block detected.Fragment shader binary block not large enough to contain first instructionFragment shader binary block of zero sizeFragment shader damaged. Duplicate blocks detected.The fragment shader is damaged, no FSTA block detected.The fragment shader is damaged, no DBIN block detected.The vertex shader is damaged, corrupt CVER block detectedThe vertex shader is compiled for an unknown coreThe vertex shader is damaged, corrupt FTRA block detected.Vertex shader binary block too smallVertex shader binary block is not alignedThe vertex shader is damaged, corrupt FINS block detected.Vertex shader damaged. Duplicate blocks detected.The vertex shader is damaged, illegal values found in the FINS block.The vertex shader is damaged, no DBIN block detected.The binary provided did not contain any shaders of the required type. Unknown data block detected in shaderVertex shader uniform data are corrupt.Too many uniforms used in vertex shader. Used %i uniform registers, but HW limit is %iFragment shader uniform data are corrupt.Fragment shader corrupt. Uniform table is sized %i, must be no larger than %i.Fragment shader is invalid; corrupt SUNI datastream detectedFragment shader corrupt; mistmatch between declared and detected uniformsFragment shader corrupt. Shader uniform '%s' uses register %i, but there are only %i registers declared in the shader.Fragment shader corrupt, unannounced version mismatch between compiler and linker?Fragment shader corrupt, mismatch between expected and found uniformsVertex shader is invalid; corrupt SUNI datastream detectedVertex shader corrupt; mismatch between declared and detected uniformsVertex shader corrupt. Shader uniform '%s' uses register %i, but there are only %i registers declared in the shader.Vertex shader corrupt, unannounced version mismatch between compiler and linker?Vertex shader corrupt, mismatch between expected and found uniformsCorrupt uniform construct detected in vertex shader.Invalid uniform structure dependencies detected in vertex shaderCorrupt uniform construct detected in fragment shader.Invalid uniform structure dependencies detected in fragment shaderCorrupt fragment shader; Invalid uniform valuesCorrupt vertex shader; Invalid uniform valuesUniform %sL0010gl_mali_YUVCoefficientsgl_mali_textureGRADEXT_sizesCurrent Mali driver support no more than 1024 samplersVertex shader attribute symbols are corruptVertex shader is invalid; corrupt SATT datastream detectedVertex shader corrupt; mismatch between declared and found attributesVertex shader attribute locations are corruptVertex attribute symbols are corruptVertex shader attribute symbols are outside legal valuesVertex shader varying symbols are corruptFragment shader varying symbols are corruptVertex shader is invalid; corrupt SVAR datastream detectedVertex shader invalid; mismatch between announced and found varyingsVertex shader is invalid; illegal VVAR block detectedVertex shader varying symbol location exceeds hardware limitgl_PointSizeVertex shader is invalid; corrupt SVAR block detectedVertex shader invalid; contains less varyings than announcedFragment shader is invalid; corrupt SVAR datastream detectedFragment shader corrupt; mismatch between declared and found varyingsFragment shader is invalid; illegal VVAR block detectedFragment shader varying symbol location exceeds hardware limitFragment shader corrupt; damaged SVAR block detectedInconsistent varying set detected, Fragment shader corrupt?L0006Vertex shader corrupt; invalid varying values foundF0001 Out of memory while setting error log Sampler '%s' bound to texture unit %i, but max is %iSampler '%s' and '%s' are of different types, but share texture unit %i.Attribute '%s' bound outside of the valid range; using slot %i but max is %iVarying '%s' not found in vertex shaderL0007Varying %sL0008?__gl_mali'%s' differ on type'%s' differ on array size'%s' struct member count mismatch'%s' differ on type size'%s' differ on invariance'%s' differ on precisionThe fragment shader is damaged, corrupt DPRO block detected.The fragment shader is damaged, corrupt DPRO block detected (invalid uniform offset).Vertex shader not compiled prior to linkingVertex shader too largeFragment shader not compiled prior to linkingRelocation of Varyings in Vertex shader failed.%  <9N1 <9N 0 <9N @ @ @00  eUDeUD  !!"##$%&&'())*+,--./01233456789:;<=>?@ABCDEFGHIJLMNOPQRTUVWXZ[\]_`acdeghiklmoprstvwyz|} !&*.158:=@BDGIKMOQSUVXZ[]_`bcefgijlmnpqrstvwxyz{}~@ADEPQTUCBGFSRWV  LMHI\]XY ONKJ_^[Z0145 !$%pqtu`ade3276#"'&srwvcbgf<=89,-()|}xylmhi?>;:/.+*~{zonkjՀփٌڏ就泲鼽꿾FramebufferGPU1800000MALI_NEVERBLITTRUEMALI_FLIP_PIXMAPEGL_EXT_client_extensions EGL_EXT_platform_base EGL_KHR_platform_gbm EGL_KHR_platform_wayland EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_EXT_image_dma_buf_import EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_swap_buffers_with_damage EGL_EXT_swap_buffers_with_damage EGL_KHR_lock_surface EGL_KHR_lock_surface2 EGL_EXT_create_context_robustness EGL_ANDROID_blob_cache EGL_KHR_create_context EGL_WL_bind_wayland_display EGL_KHR_partial_update EGL_KHR_create_context_no_error OpenGL_ESARM1.4 Linux-r7p0-00rel0EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_EXT_image_dma_buf_import EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_swap_buffers_with_damage EGL_EXT_swap_buffers_with_damage EGL_KHR_lock_surface EGL_KHR_lock_surface2 EGL_EXT_create_context_robustness EGL_ANDROID_blob_cache EGL_KHR_create_context EGL_WL_bind_wayland_display EGL_KHR_partial_update EGL_KHR_create_context_no_error EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_EXT_image_dma_buf_import EGL_KHR_gl_texture_2D_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_swap_buffers_with_damage EGL_EXT_swap_buffers_with_damage EGL_KHR_lock_surface EGL_KHR_lock_surface2 EGL_EXT_create_context_robustness EGL_KHR_create_context EGL_WL_bind_wayland_display EGL_KHR_partial_update EGL_KHR_create_context_no_error Post Color Buffer Sucess Post Color Buffer Success eglCreateImageKHReglDestroyImageKHRglEGLImageTargetTexture2DOESglEGLImageTargetRenderbufferStorageOESeglLockSurfaceKHReglUnlockSurfaceKHReglQuerySurface64KHReglSwapBuffersWithDamageKHReglSwapBuffersWithDamageEXTeglCreateSyncKHReglDestroySyncKHReglClientWaitSyncKHReglGetSyncAttribKHReglSignalSyncKHReglSetBlobCacheFuncsANDROIDeglBindWaylandDisplayWLeglUnbindWaylandDisplayWLeglQueryWaylandBufferWLeglSetDamageRegionKHReglGetPlatformDisplayEXTeglCreatePlatformWindowSurfaceEXTeglCreatePlatformPixmapSurfaceEXTegl: BUILD=RELEASE ARCH=arch_011_udd PLATFORM=default_7a TRACE=0 THREAD= GEOM= CORES=MALI400 USING_MALI400=1 TARGET_CORE_REVISION=0x0101 TOPLEVEL_REPO_URL=36e48bb REVISION=36e48bb CHANGED_REVISION=36e48bb REPO_URL=heads/build_linux_mali_so_on_r7p0 BUILD_DATE=2018年 05月 29日 星期二 14:30:54 CST CHANGE_DATE=2018-05-29 14:28:19 +0800 TARGET_TOOLCHAIN=arm-linux-gcc-hf HOST_TOOLCHAIN=gcc TARGET_TOOLCHAIN_VERSION=gcc version 4.9.4 (Linaro GCC 4.9-2017.01) HOST_TOOLCHAIN_VERSION= TARGET_SYSTEM=gcc-arm-linux HOST_SYSTEM=gcc-x86_64-unknown-linux CPPFLAGS= CUSTOMER=internal VARIANT=mali400-gles11-gles20-neon-linux-wayland-drm-dma_buf-px3se HOSTLIB=direct INSTRUMENTED=FALSE USING_MRI=FALSE MALI_TEST_API= UDD_OS=linux /dev/vendor_storageDEVNAME=XR24RG16XR24    /sys/dev/char/%d:%d/uevent/dev//dev/dri/card0mali_buffer_sharingdevice_namecreate_buffernuuuuuulibMali.solibGLESv1_CM.solibGLESv2.soMaliWorker/tmp/enable_mali_userspace_cinstrMaliCinstrSerANNOTATE 3 streamline-annotatemali-utgard-startupmali-utgard-setupMaliCinstrKbsrbase: BUILD=RELEASE ARCH=arch_011_udd PLATFORM=default_7a TRACE=0 THREAD= GEOM= CORES=MALI400 USING_MALI400=1 TARGET_CORE_REVISION=0x0101 TOPLEVEL_REPO_URL=36e48bb REVISION=36e48bb CHANGED_REVISION=36e48bb REPO_URL=heads/build_linux_mali_so_on_r7p0 BUILD_DATE=2018年 05月 29日 星期二 14:30:54 CST CHANGE_DATE=2018-05-29 14:28:19 +0800 TARGET_TOOLCHAIN=arm-linux-gcc-hf HOST_TOOLCHAIN=gcc TARGET_TOOLCHAIN_VERSION=gcc version 4.9.4 (Linaro GCC 4.9-2017.01) HOST_TOOLCHAIN_VERSION= TARGET_SYSTEM=gcc-arm-linux HOST_SYSTEM=gcc-x86_64-unknown-linux CPPFLAGS= CUSTOMER=internal VARIANT=mali400-gles11-gles20-neon-linux-wayland-drm-dma_buf-px3se HOSTLIB=direct INSTRUMENTED=FALSE USING_MRI=FALSE MALI_TEST_API= UDD_OS=linux   !!"##$%&&'())*+,--./01233456789:;<=>?@ABCDEFGHIJLMNOPQRTUVWXZ[\]_`acdeghiklmoprstvwyz|} !&*.158:=@BDGIKMOQSUVXZ[]_`bcefgijlmnpqrstvwxyz{}~   /dev/maliERROR in Mali driver: * Mali device driver failed the API version check * The solution is probably to rebuild the libraries and the Mali device driver. arm_release_ver of this libMali is r7p0-00rel0, rk_so_ver is '1', built at '14:31:06', on 'May 29 2018'. ERROR in Mali driver: * Device driver API mismatch * Device driver API version: %d * User space API version: %d ERROR in Mali driver: * Mali device driver does not seem to be valid MaliNotifywb/dev/gator/annotate__egl_platform_initialize__egl_platform_terminate__egl_platform_default_display__egl_platform_display_valid__egl_platform_get_display_orientation__egl_platform_init_display__egl_platform_filter_configs__egl_platform_flush_display__egl_platform_deinit_display__egl_platform_display_get_format__egl_platform_wait_native__egl_platform_create_surface__egl_platform_destroy_surface__egl_platform_resize_surface__egl_platform_get_pixmap_size__egl_platform_get_pixmap_colorspace__egl_platform_get_pixmap_alphaformat__egl_platform_get_pixmap_format__egl_platform_pixmap_valid__egl_platform_pixmap_support_gpu_access__egl_platform_pixmap_config_compatible__egl_platform_pixmap_surface_compatible__egl_platform_pixmap_copybuffers_compatible__egl_platform_pixmap_egl_image_compatible__egl_platform_map_pixmap__egl_platform_unmap_pixmap__egl_platform_swap_buffers__egl_platform_unmap_image_buffer__egl_platform_pixmap_get_mali_memory__egl_platform_surface_buffer_invalid__egl_platform_copy_buffers__egl_platform_get_window_size__egl_platform_window_valid__egl_platform_window_compatible__egl_platform_begin_new_frame__egl_platform_create_dummy_window__egl_platform_destroy_dummy_window__egl_platform_supports_vsync__egl_platform_lock_surface_map_buffer__egl_platform_lock_surface_unmap_buffer__egl_platform_get_buffer__egl_platform_update_image__egl_platform_setup_soft_job_callback__egl_platform_soft_job_callback__egl_platform_surface_post_processing_needed__egl_platform_swap_interval__egl_platform_start_rendering__egl_platform_stop_rendering__egl_platform_wait_swap_complete__egl_platform_query_buffer_age__egl_platform_get_native_window__egl_platform_get_native_pixmap_android_x11_fbdev_dummy_wayland_drmRG16AR15AR12AR24Mismatched mali_buffer_sharing version %d, expected %d $(, ????????????StageSamplerNormalStageSamplerExternalInternal compiler error. ????P0001P0002P0003P0004P0005P0007L0002L0003S0001S0002S0003S0004S0005S0006S0007S0008S0009S0010S0011S0012S0013S0014S0015S0016S0017S0018S0019S0020S0021S0022S0023S0024S0025S0026S0027S0028S0029S0030S0031S0032S0033S0034S0035S0037S0038S0039S0040S0041S0042S0043S0044S0045S0046S0047S0049S0050S0051S0052L0005L0009F0001F0002F0003F0004S0053S0054S0055S0056S0057S0058S0059M0002M0003 Please contact malidevelopers@arm.com with the shader causing the problem, along with this error message. Mali online shader compiler r7p0-00rel0 [Revision 96995]. 0:1: %s: Out of memory. %d:%d: %s: MaliMaliGP2Mali200Mali-400 GPMali-400 PPMissing main() function for shader main() has been overloaded Signature mismatch for main() gl_FragColor and gl_FragData both used in the same fragment shader Vertex shader where gl_Position isn't written Shader contains static recursion gl_FragDatagl_FragColormainLanguage version '%s' unknown, this compiler only supports up to version 101 disablewarnenableSet extension '%s': "%s" Extension 'debug_preprocessing_directives' used. __groupARM__persistentARMsamplerExternalOESdisable_vertex_shader_output_rewritesallow_gl_namesARM_issue_3558_error(on)ARM_issue_3558_error(off)Set pragma '%s' noneGL_EXT_shadow_samplersGL_OES_texture_3DGL_OES_standard_derivativesGL_ARM_grouped_uniformsGL_ARM_persistent_globalsGL_OES_EGL_image_externalGL_EXT_shader_texture_lodGL_ARM_shader_framebuffer_fetchGL_ARM_shader_framebuffer_fetch_depth_stencildebug_preprocessing_directives?inlined_global_var_%d_%sexpand_builtinspilot_shaderrewrite_image_sampler_accessesoptimise_constant_foldoptimise_basic_blocksfind_best_blockunrollconditional_selectstore_load_forwardingoptimise_vector_opscontrol_dependencehbbr_patterns__gl_mali_pilot_shader_%d?__gl_mali_pilot_uniform_%d?__gl_mali_pilot_gp_res_%d__gl_mali_vscpu_attr_gl_Positionmali200 Maximum number of compiler supported instructions (%d) exceeded. %s register allocation failed for fragment shader. spill Mali470 doesn't support dynamic indexing of varying array %s To turn this error into a warning and risk a hardware hang, use "#pragma ARM_issue_3558_error(off)" Emitted unsafe store instructions. Due to Mali200 hardware issue 3558, store instructions may hang the core in Mali200 hardware revisions r0p1 and r0p2. See the GX525 errata for more details. The compiler emits store instructions whenever arrays are used or when compiling complex shaders. The instrunction bits are removed on Mali470 gl_mali_PointCoordScaleBiasgl_mali_FragCoordScalegl_mali_DerivativeScale?dummy_NegativeYUVSamplerStartgl_mali_CubeGradEncConst__startOut of varying space. %s provides space for %d varying vec4s, this shader uses %d varying vec4s. ?external_last_row_fixup_%smaligp2P? ? ? C ? CC@?CCCCC@C?@ C!"C#$C%&'C(@)C*@+C,C-.C/0C123C4@5C6@7C8?9:?;?<=C>C??@ACBC@DCE?FCG?HCI?JCK?LCM?NCO?PCQ?RCS?TCUCV@WCXCYCZC[C\C]C^C_C`Cab@cCdCeCfCgChCiCjCkCMBS1 OCVEROSUNIVUNIdSTRIgl_mali_PointSizeParametersVIDX$ITDRIYUVIGRDVUNIdSTRIgl_mali_ViewportTransformVIDX$ITDRIYUVIGRDSATTVATT(STRIattr_PositionVATT,STRIattr_PrimaryColorVATT0STRIattr_SkinningIndicesVATT0STRIattr_SkinningWeights VATT(STRIattr_TexCoord0VATT(STRIattr_TexCoord1VATT(STRIattr_TexCoord2VATT(STRIattr_TexCoord3VATT(STRIattr_TexCoord4 VATT(STRIattr_TexCoord5$VATT(STRIattr_TexCoord6(VATT(STRIattr_TexCoord7,VATT$STRI attr_Normal0VATT(STRIattr_PointSize4SVARVVAR(STRI gl_PositionVVAR,STRIgl_PointSize0VVAR,STRIvar_TexCoord0VVAR,STRIvar_TexCoord1VVAR,STRIvar_TexCoord2VVAR,STRIvar_TexCoord3VVAR,STRIvar_TexCoord4 VVAR,STRIvar_TexCoord5$VVAR,STRIvar_TexCoord6(VVAR,STRIvar_TexCoord7,VVAR0STRIvar_PrimaryColor VVAR8STRIvar_PrimaryColorTwosidedVVAR(STRI var_FogDist2VVAR4STRIvar_ClipPlaneSignedDist1DBINPHGDAJbG YG HB S Jp J? G J?p J? Gp 1F :GS Jq 1J0 VL J ZJ"G0 VH J MkM NGL Jq 1J0 VL J Mw J7 J,? FGp Jw7 J,? FGp J"G 2KΪ!J"G 2KΪ!JG 2KΪ!JG 2KΪ!JϢG 2KΪ!J͢G 2KΪ!JbG 2KΪ!JbG 2KΪ!J̪ EٺSU bKq  F* Έ*G [oLv" > y*@J̪ EٺSU bKq  F* Έ*G [oLv" 6 y*@J̪ EٺSU bKq  F* Έ*G [oLv" > y@J̪ EٺSU bKq  F* Έ*G [oLv" 6 y@J̪ EٺSU bKq  F* Έ*G [oLv" > y@J̪ EٺSU bKq  F* Έ*G [oLv" 6 y@J̪ EٺSU bKq  F* Έ*G [oLv" > yj@J̪ EٺSU bKq  F* Έ*G [oLv" 6 yj@JG J J Gb FGB J" J"G fK*;G J*'  B@DMʶ*G A 1'UΌCS #aдC Ѓ[KGSG2 yBU 8yU2 y B y@JJ 2KΪ!F 2Kj!Fj 2K*!F 2K!Fb 2KΪ!F 2Kj!FZ 2K*!F 2K!FR êo êk êg êc j_ j[ jW jS K*o!F K*k!Fj K*g!F K*c!Fb K*_!F K*[!FZ K*W!F K*S!FR JG" ֊j;G" G@F JF J 6K*GG D$F :ˑ|ƃJ"G JG J J J ʳ* FG0 VH"G EGG VK* G lHv*Uƈn" S _U C q  1K"0 VL"G ȶ*G VGG (*G Iw• B1 kU 1BH1 VL"G H * R :G0 VZ 0q1: .Ñ0V dx] 1nH"0 VLG XC*_ ȳ* SH FMG S 0 V˳q  10EVڌ8 =_ ,Jpʀ_Gr 1pi0VL M 1 VKg  &GɁB , Ȁ@ JA?@!ʓLJAoAmFt“G ȑvG ʈ%nF FKl`JU˵J J/ Jĵ2K* 2Kj JbG n jW Jb ʶjG fKjG`FB ʵjGF JƒG ֊̪;@ J J"G G 6Ǫ1J"A JG J J J ʳ* FG0 VH"G EGG VK* G lHv* Hn" ƈnS Hq  1B̵*0 VL" 9c *G 9GM"C 8H[ I6QO 1ng0 VLG LɁUZȳS G 0i VZ q1pȑ0 VL] 1C2 VڌG X* rȳ* SH EMG ͶS 0 V qʑG 1 1 V G9 q,p€GR 1GPG0 VL?  0 VKg Fp\G ,+€@q JA?@ HAL?AG mp“ HpG ʈ%nF FKl`J"G JU̵J J/ JŵJb 2K* 6j JbG n jW Jb jKjGo f jg@B_ j:@ JG jGG !nʉGF FKl‰`JG J J J ʳ* FG0 VH"G EGG VK* G nq* Hn" S  f q  1b*0 VL"G ȶ*G VGG (*G Iʕ 01U 1BH"0 V̵G 9;H0 Z)G0i VZ)q * ^ *G 1: 0V dy 1nH" 0 V̵G @* O bȳ* SH" MMG :ͶS0 V˳q  1 0E V Y  ,JpʀG 1ǹP?h0EVڌʍ  0 VKgi 'GJɁ ,J€G@ JA@i&ӈ* LG myʓG vƒG Hn FKl`J JA/ Jȵ G JBW JBG ʵjGF  JG 2KΪ!J JG J J J ʳ* FG0 VH"G EGG VK* G nHv* Hn" S  Jq  1֊*0 V * 9c *G GM"G 8H[ IvQ 1n1 VL B`ɁGaZ*  [ G0 VZ q 1R 0 VL3A 16Cۢ0 VLG ,BĪƃG Zȳ* SHG MM :ͶS0 VKq G 1ꏀ0E Vڌ 7 . =pBr 1GPG0 VL? H/1VK Ɂ ,3€o@ JA@ G5 LG, mp“ HpƒGin FKl`JA/ J˵Jb G JbW JBG Jj:@ S JG :K̪`J J JG J J J ʳ* FG0 VH"G EGG VK* G nq* Hn" S  BHq  1j*0 V̶*  G VCq G 1ZH0 V̶*G -2Hۢ ZHڢG0 VH[ 6 qˏSkM IZG Jq  1:H‘G0 V G FnˍG ꈕpƒGin FKl`JA/ JߵJb G JbW JBG Jj:@ S JG jGG !nʉGF FKl‰`J J JG J J J ʳ* FG0 VH"G EGG VK* G nq* Hn" S  Jq  1֊*0 VL" J"G ZM"G 9H {KI ƈS  Jq  1J"0 VL" J" M"G 9H" m3IG MS Jq 1 0 VLbK*G IŢƃV . S JQ G 6KÍ3 VK,ƒ$LɁG J*G . q@ H 'H G V˓G 9nzU֊ FK `J JA/ Jе G JBW JBG ʵjGF  JG 2KΪ!J J JG J J J ʳ* FG0 VH"G EGG VK* G nHv* Hn" S  Jq  1֊*0 VL" J"G ZM"G 9H {KɶɁ ƈS  bKq  1J"0 V̶* J" b *G 9H" m3IآG MS Jq  1J"0 VLG J*G LV L Brƃ 6˶qʑ0QVKn uG ,J-/@ nJ HN G V“UnJp J FK `JA/ JҵJb G JbW JBG Jj:@ S J" FG0 VHG YGG VKM" Hl* Hn" S  BHq  1j*0 V̶*  G VCq G 1ZH0 VL" 1B ZLjS G0 VZHq  1J"0 Vڌ* J" F *G $ڈj?F m3Iآ ׺ S LqʏGG 1B1E VLۢG M, BqƃV 1GRG0 Vڌqˁ 2K0QVK,oiLʑGGm 6ʵnʍG@ 3L‘ $HMʍG 4Nǵv˓ z“ǁGm(z“Gqވx‰G RxBJpBʵjGF J" FG0 VHG YGG VKM" Hl* Hn" S  BHq  1j*0 V̶*  G VCq G 1ZH0 V̶* 1BɁ ZLjS G0 VZHq G] 1֊*0 Vڌ* * F *G 2* m3ت غMS ضLqʏ 1B*0 Vڌ۪G 6 ,ʏ ;HqV 1G"G0 V̶:G J" *G :˳0 VK??UnˑF 3J$Ño@ :K1 HUG̈[Gi oqGHpGaŖvBGJHvBGʵvJ j:@ J" FG0 VHG YGG VKM" Hl* Hn" S  Jq  1֊*0 VL" J"G ZM"G 9HO {KI HS Jq  1J0 VL" J *G ZH m3I MS Jq 1J0 VLF JjG 0٪G: GSG :Q NK0QVK,oiź 9vÑ@ 6JrʑG@ K‰?U"HFʉGU!NW“GU q“GGmZʕpBJpBʵjGF J" FG0 VHG YGG VKM" Hl* Hn" S  Jq  1֊*0 VL" J"G ZM"G 9H {KɶɁ ƈS  bKq  1J"0 V̶* J" b *G 9H" m3Iآ MS Jq  1J"0 VL" fKΪ#F LG2 vG :±r 6qʑ 0 VKÑy ȍG 3J'/@UCrbvG]NG“G]nqBG pB֊pJ j:@ J" FG0 VHG YGG VKM" Hl* Hn" S  Jq  1֊*0 VL" J"G ZM"G 9Hb m3I MS 6qʍ 6KC ںȶˑ ٶ̆q‘G Lp‘G ̆n‰GG HvBGJzBʵjGF J" FG0 VHG YGG VKM" Hl* Hn" S  Jq  1֊*0 VL" J"G ZM"G 9Hb m3I MS 6qʍ 6K ۺˑG5 ̖qBGbpBʵpJ j:@  jG nʉGG LvBGJxBʵjGF 2KΪ Jb JbG JbW Jj:@ JBGJBGWJbGJjG:@ SJO$JKJK$֊Oʷ*O$JG KJG J"$JG J  FG JG J J J 2 JG ̱ؒ*F QB۪ 9˳**@M *G :KHb2K C fK*G !B@Ƿ*G Ed tBJ GbG EfBB g@GĪ UEeG Bg…@J? J/ J"G JGJG @CG *COG A  j- *) HC DAbg 8* 9DC"s *$ %6ABÀ_ ;jG1 AC_ ﻏG*@s\CYf˱*G vf@ sGeZ *G q=v_C K*U GK 9F_ . 60)G 2JY/HF. - E进gU/H-@e*U R˵* m Hƒb6˳ƒC fK* &@*GM Eg m gJ" GbG EgBGB tB@1GĢ  EwGB }@J? J/ J"G JG㵶@CG NCkG H"B . G 0FjD 1* UB_ 8Gjs 8O"s_C 9Xε*s 7AbC_ ;Oh‡Geƀk_Ce D* mA!ǀC| O‡B ވ!x#OU bK* qC J" /(kU-̠B֊*G о5¿*F *G ȿ[C  ÿ G >JpB)ȵ  HSB 3L(qB 1>0 V̵q  1:6G1EVLpGa K&U f˵*G XGg F VˀG= F bnCJ JbO$J*KJbK$֊jOʷͪO$JG jKJG J΢$JG J  FGB JG J J J :K 2KC n *G $[G qG̳*pMfj@F 2K1DCQʶ* >Ç* G F eE BˑdB@ JϢ K  AeBB b@1J" G#/UQ} UB gB@ *Ȁ?G JGJG 2*9@ J¿G JG -X@CG ?NG ȶ*G ̶ M*sH >ȵq :JqB J˵* 97HHG0eVZHۃGZ˱* f˵*?G z;ͶG Öp FJp ˵  BlCJ @C N"kG 6>@†C 7NG 6>AbC 7jG 6êCGe .%C1 65CG6 &B1 >.‡CGi6 6G1 @=-jsF 7@s ;*G O8jCGY 3O@Ci 3OG9PC? Hp1B0G2E V' 1G5 $qGg 1B(w0E V q FJG ZlBJ E J ).@BsG ;@s_ 3NG N4AsC ֿ@"C *kG  6>CC ̺ G5 6L7€G= Ѿ@>Ø@N*{GM>C 6!G1 ?A6CCCm6-B/G >5@ÁU7O9DC`B yn*G vCC˱* Ky1>ڀG0V 1TG] x ?U *G] CtGcJ{@=˵  BlCJ @C N"OG 6>@†C 7NG 6@"C *G 6>C_Ge .%A1 6?-@Cg@m6%BG >-@À?U7GCCyZK*G] wA,VC : >qC1 vG0EVڌTG]ZK*GaM0AVD] XwGc fJf@=˵  BlCJ /@C NO 8CG ?JC qC[G 6HqB F˴* s2HG0VMU ̺@>G NpW FJp ˵  BlCJ Z[\StageSamplerNormal0StageSamplerNormal1StageSamplerNormal2StageSamplerNormal3StageSamplerNormal4StageSamplerNormal5StageSamplerNormal6StageSamplerNormal7StageSamplerExternal0StageSamplerExternal1StageSamplerExternal2StageSamplerExternal3StageSamplerExternal4StageSamplerExternal5StageSamplerExternal6StageSamplerExternal7ConstantColorFogColorClipPlaneTieStageConstant0StageConstant1StageConstant2StageConstant3StageConstant4StageConstant5StageConstant6StageConstant7AddConstToResvar_TexCoord0var_TexCoord1var_TexCoord2var_TexCoord3var_TexCoord4var_TexCoord5var_TexCoord6var_TexCoord7var_PrimaryColorvar_PrimaryColorTwosidedvar_SpecularColorvar_SpecularColorTwosidedvar_ClipPlaneSignedDistvar_FogDist%s%03dattributebreakbvec2bvec3bvec4constcontinuediscarddoelsefalseforhighpinoutinvariantivec2ivec3ivec4lowpmat2mat3mat4mediumpreturnsampler2Dsampler3DsamplerCubetrueuniformvaryingvoidwhileasmclassunionenumtypedeftemplatethispackedgotoswitchdefaultnoinlinevolatilepublicstaticexterninterfaceflatlongshortdoublehalffixedunsignedsuperpinputoutputhvec2hvec3hvec4dvec2dvec3dvec4fvec2fvec3fvec4sampler1Dsampler1DShadowsampler2DShadowsampler2DRectsampler3DRectsampler2DRectShadowsizeofcastnamespaceusingUnterminated comment Unknown character '%c'(%d) unknownend of filenewline;{},:[!~*\#+=-=*=/=%=&=^=|===!=floating point constantinteger constantundefined constant>>=<<=>><<++--&&||^^centroidsampler1dsampler1dshadowsampler2dshadowsampler2drectsampler3drectsampler2drectshadowgl_FragCoordgl_FrontFacinggl_PointCoordgl_DepthRangeParametersgl_DepthRangeError while parsing floating point literal '%s' Expected token '%s', found '%s' Expression exceeds maximum number of allowed operands (%d) No matching function for call to '%s' '%s' is not a function Undeclared variable '%s' Type '%s' referred to as a variable Symbol '%s' can't be referenced as a variable Global variable initializer must be a constant expression Error while parsing integer literal '%s' Expected literal or '(', got '%s' Attribute variable declared inside a function Varying variable declared inside a function Uniform variable declared inside a function Extension 'GL_ARM_grouped_uniforms' used, group '%s' declared for uniform variable Extension 'GL_ARM_persistent_globals' used High precision not supported, instead compiling high precision as medium precision Boolean variable can't have a precision qualifier Embedded structure definition is not allowed Illegal identifier name '%s' Duplicate struct member '%s' Struct '%s' has no members Symbol '%s' redeclared Typename expected, found '%s' Expected precision qualifier, got '%s' Expected type for precision qualifier, got '%s' All uses of invariant must be at global scope Non-variable '%s' declared invariant Variables of this kind cannot be declared invariant 'gl_FrontFacing' cannot be declared invariant invariant qualifier must be specified before any use of variable '%s' Expected identifier, found '%s' Only output values can be declared invariant Function '%s' declared or defined inside function %uSymbol '%s' redeclared as a function gl_LastFragStencilARMgl_LastFragDepthARMgl_LastFragColorARMSymbol '%s' is readonly Symbol '%s' redeclared with diffrent type Unexpected iteration token continue used outside of loop body break used outside of loop body Unexpected flow control token Name '%s' used more than once as a parameter gl_MaxVertexAttribsgl_MaxVertexUniformVectorsgl_MaxVaryingVectorsgl_MaxVertexTextureImageUnitsgl_MaxCombinedTextureImageUnitsgl_MaxTextureImageUnitsgl_MaxFragmentUniformVectorsgl_MaxDrawBuffersradiansdegreesasinacosatanpowexplogexp2log2inversesqrtabssignfloorceilmodminmaxclampmixsmoothsteplengthdistancedotcrossnormalizefaceforwardreflectrefractmatrixCompMultlessThanlessThanEqualgreaterThangreaterThanEqualequalnotEqualanynottexture2Dtexture2DProjtexture2DLodtexture2DProjLodtextureCubetextureCubeLodtexture2DLodEXTtexture2DProjLodEXTtextureCubeLodEXTtexture2DGradEXTtexture2DProjGradEXTtextureCubeGradEXTtexture3Dtexture3DProjtexture3DLodtexture3DProjLodshadow2DEXTshadow2DProjEXTdFdxdFdyfwidthL-value swizzle contains duplicate components L-value is constant Cannot modify a uniform variable Cannot modify a varying variable inside a fragment shader Cannot modify an attribute variable Operand is not an lvalue uvec[%d]struct %sFunction declared void but return statement has an argument Function declared with a return value but return statement has no argument. Type mismatch, cannot convert from '%s' to '%s' discard can only be used in fragment shaders. if() condition must be of boolean type while() condition must be of boolean type for() condition must be of boolean type Cannot declare a variable of type void Extension 'GL_EXT_shadow_samplers' used, variable '%s' declared with type 'sampler2DShadow' Extension 'GL_OES_texture_3D' used, variable '%s' declared with type 'sampler3D' const variable does not have an initializer Initializer for const value must be a constant expression Attribute variable with initializer Illegal type for attribute variable Attribute qualifier only allowed in vertex shaders Varying variable with initializer Illegal type for varying variable Uniform variable with initializer Sampler declared without uniform qualifier Cannot assign to arrays or structs with arrays Function returns an array Attribute qualifier used on return type Uniform qualifier used on return type Varying qualifier used on return type Const qualifier used on return type Samplers cannot have out or inout parameter qualifier Attribute qualifier used on function parameter Varying qualifier used on function parameter Uniform qualifier used on function parameter Extension 'GL_EXT_shadow_samplers' used, parameter '%s' has type 'sampler2DShadow' Extension 'GL_EXT_shadow_samplers' used, unnamed parameter has type 'sampler2DShadow' Extension 'GL_OES_texture_3D' used, parameter '%s' has type 'sampler3D' Extension 'GL_OES_texture_3D' used, unnamed parameter has type 'sampler3D' Function '%s' redeclared with different parameter qualifier(s) Function '%s' redeclared with different return type Function '%s' redefined Function '%s' redeclared. Extension 'GL_EXT_shadow_samplers' used, default precision set Extension 'GL_OES_texture_3D' used, default precision set Request for member "%s" of an array Struct "%s" has no member named "%s" Vector swizzle "%s" is bigger than 4 Swizzle field selector '%c' unknown Swizzle field selector out of range Vector swizzle "%s" mixes components from different sets Member reference or swizzle attempted on non-structure and non-vector Operand to ! must have boolean type Arithmetic unary operations only work with integer and floating-point values Cannot modify sampler variable Arithmetic operations not allowed on this type Type mismatch in arithmetic operation between '%s' and '%s' Cannot compare '%s' with '%s' Cannot compare arrays Cannot compare samplers Cannot compare non-scalar types Cannot compare vectors or matrices Operands to &&, || and ^^ must have boolean type Only integer expression allowed as array subscripts Negative array subscript Array subscript too big Negative matrix subscript Matrix subscript too big Negative vector subscript Vector subscript too big Only arrays, vectors and matrices can be indexed ?: parameter must be of boolean type 2nd and 3rd parameters of ?: must have the same type Sampler can't be an l-value Extension 'GL_EXT_shadow_samplers' used, variable '%s' with type 'sampler2DShadow' referred Extension 'GL_OES_texture_3D' used, variable '%s' with type 'sampler3D' referred Extension 'GL_ARM_shader_framebuffer_fetch' used, variable '%s' referred Extension 'GL_ARM_shader_framebuffer_fetch_depth_stencil' used, variable '%s' referred In function '%s' parameter %d has both 'const' and '%s' qualifier Extension 'GL_EXT_shadow_samplers' used, function call to '%s' Extension 'GL_OES_texture_3D' used, function call to '%s' Extension 'GL_OES_texture_external' used, function call to '%s' Extension 'GL_EXT_shader_texture_lod' used, function call to '%s' Extension 'GL_OES_standard_derivatives' used, function call to '%s' No matching overload for function '%s' found Expected prototype is ' or (, %s)'Cannot construct a matrix from more than one matrix Too few arguments for constructor Argument unused in constructor Type mismatch, cannot convert argument #%u from '%s' to '%s' Too few arguments for struct constructor Cannot use arguments of type '%s' for built-in constructors Too many arguments for struct constructor Array size must be a constant integral expression Array size must be greater than zero Function '%s' not defined Right operand of shift has negative value Illegal use of 'defined' operator Identifier required after 'defined' operator __LINE____FILE____VERSION__GL_ES__ARM_MALI____ARM_MALI_HW_REV_MAJOR____ARM_MALI_HW_REV_MINOR__GL_FRAGMENT_PRECISION_HIGHMissing argument before ',' in '%s' macro invocation Too many arguments for '%s' macro invocation Unexpected end of file found Unterminated argument list definedUnexpected end of macro invocation Error parsing constant expression, unknown identifier '%s' Error parsing constant expression Expected end of line #endif directive found outside if-section #else directive found outside if-section Illegal use of else #elif directive found outside if-section Illegal use of elif Invalid identifier '%s' Unexpected token '%s' in argument list Token '%s' repeated in argument list Unexpected end of argument list %empty%Macro name '%s' reserved Macro '%s' redefined Cannot undefine a predefined macro '%s' Unexpected text found after #undef directive Unexpected text found after #%s directive #%s directive found outside if-section Illegal use of %s #error:%s Extension directive must occur before any non-preprocessor tokens Expected extension name after #extension directive, found '%s' Expected ':' in #extension directive, found '%s' requireRequired extensions need to be listed explicitly, '%s' is not allowed Extension '%s' not supported Enabled extensions need to be listed explicitly, '%s' is not allowed Unknown extension behavior '%s', expected one of: require, enable, warn, disable Unexpected text found after #extension directive #version must be the first directive/statement in a program Missing version after #version directive Unexpected text found after #version directive Unexpected text found after #line directive Unknown preprocessing directive '%s' Unterminated #if/#ifdef/#ifndef defineundefifdefifndefelifendiferrorpragmaextensionversionmemberno default precision defined for %s no default precision defined for expression variablereturn valueparameterargument%u%matrix_spill_temp%ternary_tmp%and_or_tmp%retval%store_reload_temp%tempSTRIDBINDPROVPROVERSFSTAFINSREGUSVARVVARVUNIVIDXITDRIYUVIGRDVINISUNIVACTEXPROPNDMBS1CVERSATTVATTVSOPCFRAFDISFBUU## !21201 0!! ##0!01 122wildcardFunction '%s' not supported on target  @Shader too long. This shader is %d instruction words long, but %s only supports up to %d instruction words. Shader too long. This shader is %d instruction words long, but MaliGP2 hardware revision r0p1 only supports up to %d instruction words. Note that hardware revisions r0p2 and newer support up to 512 instruction words. ?__maligp2_constant_%03u%s register allocation failed with convergence for vertex shader. %s register allocation failed for vertex shader. Insufficient MaliGP2 work register space for vertex shader. %d registers needed, but only %d registers are available. Note that MaliGP2 hardware revisions r0p3 and newer do not have this limitation. Unable to allocate %s fixed-point ranges. Out of space for uniforms, globals and temporary variables. %s provides space for %d vec4s, this shader uses %d vec4s. Out of attribute space. %s provides space for %d attribute vec4s, this shader uses %d attribute vec4s. !B!!B!!B!(null)%.5e-1.#INF-infNANNaNivec%ubvec%umat%umat%ux%ustruct unnamed struct%s[%u]I@NRp*#@^0\Tmk=5LTH>E~?spill $0>Oat􀌡󀍺/Ps뀔ꀕ:f耗瀘&倚Z“ဝ6q(ހh݀0ۀtڀـK؀ր,րyhҀb e΀΀r̀*ʀFʀɀɀkȀǀ3ǀƀf8ĀÀ ÀxS0j޼Sɻ?/" “› æ-ô;ĮM֭awƐǫ:ɩX騀z ɝ/æVꥀ˪Aأo̟8ҡlΡ=ٟuϯMЊ*ɜj ѫMё4ؙ{ Ęiӵ[өPԡI՜F՛F֝JףQ׬[ ׹hȎy*ۍٌ>٣V ڽq%يڎCۯe҈ۉ@ܰh!چܓLz5ުf"݃ޚVЂߍK ǁ߅D€A$Hl 7Vs"%(+.158&;3>>AGDMGPJPMMPGS>V1Y"\_adgjtmIpsuxp{.~K9ӐhgҤ6;Ȳ:hǿzMH-F<k K  Ss;:pNNp:;sS  K k<F-HMzǿh:Ȳ;6ҤghӐ9K.~p{xusIptmjgda_"\1Y>VGSMPPMPJMGGD>A3>&;851.+(%s"V7 l H$qN+ pV<%¾©Ϧޣ $CeSҁd|y wftq-ol jgdb `].[XlVTQ{O8MJHFqDRB9@(><:"8/6E4a20.,%+k)'&l$"B!;VA}N(   " F u9TAU<|O--O|<UAT9uF "   (N}AV;B!"l$&'k)%+,.0a2E4/6"8:<(>9@RBqDFHJ8M{OQTlVX.[] `bdg jl-oqft wyd|ҁSeC$ ޣϦ©¾%<' ?' @& p 1|+ 2* 3|* 4) 5|) 6( 7|( 8' ز 0+ (- )- *- +- ,- -- .|- /l- T  \. !L. "<. #,. $. % . &- '- . . . . . . |. l. $ J. 8 H3 L A 8 ` >< t +? ;B 8\F -I Ĵ /L ش *O *o L P,Z  X+Lo Zo ho vo  o !o "o #o $o %o 'o &o (p )*p *6p  dz :z Pz )3| *;| +D| ,I| -N| .C| /H| 0M| 0M| 1R| 2V| 3Z| 4^| 5c| 6o| 7h| 8t| 9x| :}| ;| <| =| =| >| >| ?| ?| @| @| A| A| B| B| C| C| D| E| F| G| H| I| J| K| L| M| M| N} N} O} O} P} P} Q,} Q,} Q,} R2} R2} R2} S;} T\ U?} ZC} ZC} jC} [M} [M} \M} \M} kM} lM} ][} ^h} _h} dy} dy} e} m} n} o} p} q} r} s} t} `~ `~ a ~ a ~ b~ c(~ f9~ gE~ uU~ vZ~ w_~ j{ ~{ { { { { | !| dz Pz :z       p       )  qq  I  :Ȟ AE<ѨqM-NNOqqO5XV:A:W@W@Qb}1QbQb~||o@y@͙1A6٪LGG-M =<<<<<<=<<<<<<<<@W@yu@ W@K]Uoy@&}8P- =im\Ѩq}aaUUU =uB=B=B==QTuQQTuQIII\I\Qb^^Q]Q]ZZZ|9_ZA`_A`_9_ZF-FF)eZIXeZIXcUUUiFFUUAKAK5511E3DGGII}TGAIAId eAqGPPPPPPPPPd:l:t:|:::::::::::::::::; ;;;$;,;4;<;D;L;\=<T;\;d;l;t;|;;;;;;;;;;;;;;;;;< <<<$<,<4<<<D<L<T<\<d<l<t<|<<<<)X xm  4  + l)٤ * * )( l,< ,R |-k $. . p/ 0ͥ |0 1 + 1+ D2E 2b 3 T4  hŦ Ԧ  8  `  + : pK b @  4 l5Ƨ 5ӧ |6 7 7 8 8 (9/ @K \ u h  X Ө   X  L6 9F 9W 9h 9x 9 9 9 9 9 9̩ 9۩ 9 9 9 9& 97 9I 9U 9b 9r : : : : :Ȫ :֪ : : : $: (:1 ,:> 0:S 4:_ 8:l <:z @: D: H: L:« P:Ы T:ܫ X: \: `: ! ` E<Ѩq}Šq 5XV:A:W@W@Qb}1QbQb~||o@y@͙1A6٪ٞGG? @W@yu@ W@K8@XHPԜ0h`px]Uoy@&}8š- =imapx,șЙؙ (08@HPX`hpxHdȚКؚԝ (08@HPXhpx,HdțЛ؛` ( u)m-}_5qu`u`a ]٪''''''''''''''''''ї)X xm  4 + : pK b @  Ȼ w޻ lx/ @  K \ u h  X Ө   X  L  9 ) =F m      G Œ  - g, = [ Y <q I< {<   ! S!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  ' d_+a|n{=L 5lc 0 { E \hgH -B= EcL{ ͯDp]1y  }I+  &HP qA:E ]z z ] ;Km1J B0?1t @E m{ |ܰ <0N,TBxS 0t`53w*E$k0ɧQ e!1 A 3 4A yEE:B=c 0wE  ɞu aB(|y E% X(wA 28  0??? ??? ??? ??0??? ??? ??? ??0??? ??? ??? ??0??? ??? ??? ??0??? ?????????0??? ?????????0??@??@??@???0??@??@??@??? O@22*x-2R8@^X*: )@ 8@EV '82C>T p" E> O@22*x-2R8@^X*: 8@EV '82C>T p" E>   080 808080080 8080800Q0 808080080 808080080 8080800Q0 808080080 808080080 8080800Q0 808080 080  8080800Q0& 8080800Q0) 8080800Q0* 808080 080  808080 0Q0 8080800Q0 8080800Q0808080080 80080080# 80080 080" 80080 080 80080RA24RX24RG16BA24RA15RA12YV120NV210NV120YU120YUYV0| | ? c*<??????????     @     ȱ б h в L H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 l D д X D X D X D X D 0  0  0  0  0  0  0  0  l D X D X D X D X D X D 0  0  0  0  0  0  0  0  Ե Ե Ե Ե \ p \ p  6p n 6p И  8  s s s dz Pz :z   -    H GCC: (Linaro GCC 4.9-2017.01) 4.9.4A4aeabi*7-A A   ".shstrtab.note.gnu.build-id.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.ARM.exidx.eh_frame.init_array.fini_array.jcr.data.rel.ro.dynamic.got.data.bss.comment.ARM.attributes$ PP4o|F|FtAo]]P ^^2Y ``bxx ]h  nZ Z tZ Z V|p Ȱ Ȱ ̰ ̰ а а ذ ذ ܰ ܰ (   h$xx 0x $p 5  ZJ$ؚ؊O@,@@:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXGNU4._' 9N@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX I e ?h  9 I  $ 8zM  Q w  ~ `: 0 /c2U 1  l w ^ oi$    ^;y==   /. ?  N W } dY  :B #_ M ;O \  ` W/ (s h  ##  d 6m P ls ^ &* z@V ` + #e< 0 , zd g  6 i  ) p  4C66+' n yy1NUb    0 fq = ^   T M  5g   J3P d R t E H :P z g  ]Ogt  u y ] Z L 4 h s dU "O x Ry 9 l @ @ kD  TU8q u R K K h )0 D7 #LP    i m w | w iR X W)[ 0<+ t   =. I~ (4- Bu" g r  ` ## v G T  < _ :  r m`ay @SIp !jrP  ~ 75bj v w q3 f 5 w o/  Y e jC    = I  i R gA Q 3N( qW $   G  ^"  B~h f  { X5vTEs }l  S & .3 S k c - )   -l W| f C    e    ut ' + ;{ ) id  *# 2[  > g   %!k H G ?O u p 5 ,@? [   o;G  H2 z \ ( t  3 p 8 B p F ~Vk. M % J a Q  Dc WL} m y m }/ 0L & 7 r Y) v:|Ha >} | o  cx b  l e !a \  U } 0" >   _`b g! g z v - D  ^ x  t  =% S nc 9? &v  {c  X K< Rd w X7 J  BKI . b@  \ x ]  j K Fm]< *  Z o  O N : } E & {, n> -6[ F  6 > \ + aX * [ MNiG}!eT  * U 4  % h ,  V^ {7! J %   J ! f c   C 9 hB & pz  [ `Hk> N :  B 8 R 3 (   T _A q o / : ? <  Ac V }  4 Gz  / u e2 5 pba| fTC * F  )*  sC ,; mg  T -{  ! zGr Dk  ' 2>DX  ]Y  H(OAB S > p    Q8 I:&   E u  Q ; Hm t   L 3 D A  A " , 1 6P 1 E    ?k j L   2oej/ SC  a  rB  ` q  _#]v _ n ?NU GO2 5 K(  :lDp 3 M  /Z  H ]  6  `^|  "ONPp }-&bMdV[#%rDBU;kP X9/SCn)E-VxMo2cIu|'m$PlYvK.rH$8H7{&O_~ 4khDA\(O,->F8mbFhu6L]<Z,+_yJF"ixt3*RJYwS Q,WJhTmU*E FQ5nSG^sYjc{n31;f@09ZT| 7Zi8MK[a@'""]U*kiI;xx"j4C%s NB=L12wv@5a-l31!z|f*My3#I ^[%izpX5X\t( cAKJ{W<|8R9tr|'>s@{:Um 0rip2SkS.q 7o) =_1/v.Zt#7+/.L=aR9=QA$E bO{yA$7EfX9F1\\Ke?aX24LG&4G&o$%qDo8Ce>Y>\Y $U~|+nrYFnh? x~ f"cdkV1Ax`N(Q`<@u8IZ~Kb4_7d9(E5ZV J&L?1L'0gjn]V+;Pe:d*NE w4=Gw]Vb \?os ;TP= P],.R bg8Z_A}  V j, H^ -  f_-6  !})9 $' C+  O X+ lu (Q1 $j [ < {W % s5q 'JY R s<V 0  Q  4  Me7F[z+6q'q <y 9 MflB ) \v Z. '  vxy l Wj!  H ' t  I2N  [`  W %~  x F W @ D  )0 Y  $ ^  . ra~un ; n ws%  dZ q K    C S J " !T, E h Q  ~  6 :9999::3:=:H:Y:l: x Z ̰ а ؚ@P :  `^2o]oo|FoI__gmon_start___fini_ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize_Jv_RegisterClasses_mali_osu_atomic_inc_and_return_mali_osu_atomic_dec_and_return_mali_osu_atomic_read_mali_osu_atomic_write_mali_osu_atomic_initglActiveTexture_gles_get_context_gles_debug_state_set_last_callglBindBuffer_mali_sys_spinlock_lock_mali_sys_spinlock_unlockglBindTextureglBlendFuncglBufferDataglBufferSubDataglClearglClearColorglClearDepthfglClearStencilglColorMaskglCompressedTexImage2DglCompressedTexSubImage2DglCopyTexImage2DglCopyTexSubImage2DglCullFaceglDeleteBuffersglDeleteTexturesglDepthFuncglDepthMaskglDepthRangefglDisableglDrawArraysglDrawElementsglEnableglFinishglFlushglFrontFaceglGenBuffersglGenTexturesglGetBooleanvglGetBufferParameterivglGetFloatvglGetIntegervglGetStringglGetTexParameterfvglGetTexParameterivglHintglIsBufferglIsEnabledglIsTextureglLineWidthglPixelStoreiglPolygonOffsetglReadPixelsglSampleCoverageglScissorglStencilFuncglStencilMaskglStencilOpglTexImage2DglTexParameterfglTexParameterfvglTexParameteriglTexParameterivglTexSubImage2DglViewportglEGLImageTargetTexture2DOESglMapBufferOESglUnmapBufferOESglGetBufferPointervOESglRenderbufferStorageMultisampleEXTglFramebufferTexture2DMultisampleEXTglEGLImageTargetRenderbufferStorageOESglBindVertexArrayOESglDeleteVertexArraysOESglGenVertexArraysOESglIsVertexArrayOESglDebugMessageControlKHRglDebugMessageInsertKHRglDebugMessageCallbackKHRglGetDebugMessageLogKHRglPushDebugGroupKHRglPopDebugGroupKHRglObjectLabelKHRglGetObjectLabelKHRglObjectPtrLabelKHRglGetObjectPtrLabelKHRglGetPointervKHRglGetPointervglDiscardFramebufferEXTglGetGraphicsResetStatusEXTglReadnPixelsEXT_gles_m200_td_dimensions_mali_base_common_mem_addr_get_full_gles_texture_miplevel_assign_gles_texture_object_get_mipmap_level_assure_gles_fb_texture_object_copy_gles_fb_texture_object_deref_gles_fb_texture_object_assign_gles_fbo_bindings_surface_changed_gles_texture_reset_gles_texture_miplevel_allocate_gles_fb_texture_object_get_mali_surface_gles_m200_get_storage_surface_format__m200_texel_format_flag_support_mali_texel_layout_to_pixel_layout_mali_surface_specifier_bpp_gles_fb_surface_alloc_gles_texture_miplevel_grab_instance_gles_fb_texture_object_get_renderable_mali_incremental_render_mali_frame_builder_wait_mali_surface_grab_instance_mali_surface_release_instancememory_type_is_os_arch_allocation_mali_surface_cow_surface_instance_mali_surface_alloc_surface_instance_mali_surface_free_gles_texture_miplevel_release_instance_gles_debug_report_api_error_gles_debug_report_api_invalid_enum_gles_unpack_alignment_to_pitch_gles_m200_get_input_bytes_per_texel_gles_mipchain_is_complete_gles_texture_object_get_internal_component_flags_gles_texture_object_init_gles_debug_label_init_gles_texture_object_init_internal_object_gles_texture_object_new_gles_fb_texture_object_alloc_gles_texture_object_delete_gles_fbo_bindings_free_gles_debug_label_deinit_gles_texture_object_deref_gles_texture_object_list_entry_delete_gles_wrapper_free_gles_texture_object_get_mipchain_index_gles_texture_object_get_mipmap_chain_gles_texture_object_get_mipmap_level_gles_get_texobj__mali_named_list_get_non_flat_gles_wrapper_alloc__mali_named_list_insert_gles_texture_miplevel_set_renderable_gles_fb_texture_object_set_renderable_gles_tex_image_2d_internal_gles_fb_tex_image_2d_gles_debug_report_api_out_of_memory_gles_tex_sub_image_2d_internal_mali_frame_builder_flush_gles_check_for_rendering_errors_gles_fb_tex_sub_image_2d_gles_tex_sub_image_2d_gles_debug_get_printable_label_gles_m200_get_gles_input_flags_gles_compressed_texture_image_2d_gles_fb_compressed_texture_image_2d_etc_gles_fb_compressed_texture_image_2d_paletted_gles_compressed_texture_sub_image_2d_gles_fb_compressed_texture_sub_image_2d_gles_texture_object_is_cube_complete_gles_texture_object_check_completeness_gles_fb_texture_object_get_mali_surface_at_plane_gles_bind_tex_image_internal_gles_fb_egl_image_texel_format_valid_gles_m200_get_gles_type_and_format_gles_generate_mipmap_chain_gles_egl_image_target_texture_2d_gles_setup_egl_image_from_texture_gles_fb_texture_setup_egl_image_gles_texture_is_mipmap_generation_necessary_gles_bind_texture_gles_get_dimensionality_cubemap_detail_gles_tex_image_2d_gles_get_active_bound_texture_object_gles_convert_mali_err_do_gles_fbo_internal_draw_setup_mali_frame_builder_get_output_gles_convert_region_gles_region_intersect_with_damage_regions_mali_frame_builder_flush_with_region_gles_enable_flush_region_gles_copy_texture_image_2d_by_partial_flush_gles_copy_surface_region_to_textureis_gpu_conversion_allowed_gles_copy_texture_image_2d_mali_frame_builder_is_protected_gles_framebuffer_internal_complete_mali_frame_builder_acquire_output_gles_fbo_get_bits_mali_frame_builder_set_output_mali_frame_builder_write_lock_mali_frame_builder_write_unlock_mali_frame_builder_swap_gles_read_pixels_internal_gles_copy_texture_sub_image_2d_mali_frame_builder_readback_mali_frame_builder_add_surface_read_dependency_mali_mem_pool_alloc_mali_prerotate_rect_mali_frame_builder_readback_util_alloc_rsw_on_pool_mali200_draw_quad_gles_get_flush_region_outputs_gles_restore_flush_region_outputs_gles_flush_region_mali_surface_alloc_gles_buffer_object_init_gles_buffer_object_new_gles_buffer_object_deref_gles_gb_free_buffer_data_gles_delete_buffers_gles_vertex_array_remove_binding_by_ptr__mali_named_list_remove_gles_buffer_object_list_entry_delete_gles_get_buffer_object_gles_bind_buffer_gles_vertex_array_get_binding_gles_vertex_array_set_binding_gles_buffer_data_gles_gb_buffer_data_mali_base_arch_mem_unmap_gles_buffer_sub_data_gles_gb_buffer_sub_data_gles_map_buffer_mali_base_common_mem_size_get_mali_base_common_mem_alloc_mali_base_common_mem_freegles_gb_cache_invalidate_mali_base_arch_mem_map_gles_unmap_buffer_gles_get_buffer_pointerv__vsnprintf_chk_gles_internal_unbind_buffer_objects_mali_frame_builder_get_framebuilder_completion_status__mali_named_list_iterate_begin__mali_named_list_iterate_next_gles_begin_frame_gles_reset_frame_mali_frame_builder_reset_gles_clean_frame_mali_frame_builder_clean_gles_drawcall_begin_internal_mali_frame_builder_get_primary_color_index_gles_drawcall_begin_gles_get_fetch_per_sample_mali_frame_builder_incremental_rendering_requested_gles_drawcall_end_mali_sys_thread_key_get_data_mali_sys_thread_key_set_data_mali_sys_mutex_lock_mali_sys_mutex_unlock_gles_set_blob_cache_funcs_mali_sys_mutex_create_mali_sys_mutex_destroy_gles_set_read_frame_builder_gles_set_draw_frame_builder_gles_fb_blend_equation_gles_create_renderer_string_mali_arch_pp_get_core_version_gles_get_graphics_reset_status_ext_gles_delete_context_gles_texture_env_deref_textures_gles_internal_bind_framebuffer_gles_internal_bind_renderbuffer_gles2_use_program_gles_share_lists_deref_gles_state_deinit_gles_framebuffer_object_deref_gles_sg_free_mali_frame_builder_free_gles_gb_free_gles_fb_free_gles1_get_vtable_gles2_get_vtable_gles_fb_init_apply_ditherfloorfceilf_gles_framebuffer_object_new_gles_sg_alloc_gles_sg_state_init_gles_state_init_gles_share_lists_addref_gles_share_lists_alloc_gles_gb_init_gles_fb_alloc_mali_frame_builder_alloc_gles1_create_context_gles2_create_context__mali_named_list_free_mali_sys_spinlock_destroy_gles_framebuffer_object_list_entry_delete_gles_renderbuffer_object_list_entry_delete__mali_named_list_allocate_mali_sys_spinlock_create_gles_share_lists_clear_v2_contentstrlenstrncmp_gles_calculate_conversion_rect_mali_rotate_surface_ccw_linear__m200_texel_format_get_bpp_mali_rotate_surface_ccw_blockmali_convert_block_interleave_lut_gles_read_pixels_pre_processing_gles_read_pixels_post_processing__mali_pixel_format_get_bpp_mali_convert_request_initialize_mali_convert_texture_gles_read_pixels_gles_m200_get_input_surface_format_gles_read_n_pixels_ext_gles_verify_enum_gles_verify_bool_gles_get_type_sizefixed_to_float_mali_clz_lut_gles_convert_element_to_ftype_gles_flush_gles_finish_mali_base_common_context_fence_lock_mali_arch_pp_get_latest_fence_mali_base_common_context_fence_unlock_mali_arch_fence_wait_mali_frame_builder_get_clear_value_mali_frame_builder_set_clear_value_gles_clear_gles_scissor_zero_size_check_gles_draw_clearquad_gles_gen_objects__mali_named_list_get_unused_name_gles_is_object_downsample_2x2_rgba16161616_downsample_2x2_rgb565_downsample_2x2_rgba4444_downsample_2x2_rgba1555_downsample_2x2_rgba5551_downsample_2x2_rgba8888_mali_osu_downsample8888_downsample_2x2_rgba88_mali_osu_downsample88_downsample_2x2_rgba8_mali_osu_downsample8_downsample_2x2_rgba_fp16_gles_generate_mipmap_chain_sw_16x16blocked_gles_generate_mipmap_chain_sw_gles_downsample_rgba8888_gles_generate_mipmap_chain_hw_gles_generate_mipmap_block_iterator_mali_convert_16bit_to_rgba8888_mali_convert_8bit_to_rgba8888_mali_convert_rgba8888_to_16bit_mali_convert_rgba8888_to_8bit_gles_downsample_span_rgba8888_gles_odd_npot_to_even_and_downsample_rgba8888_mali_convert_pixel_format_get_convert_method_mali_convert_pixel_format_get_size__stack_chk_fail__stack_chk_guard_gles_sg_init_draw_call_gles_fb_init_draw_call_mali_arch_profiling_get_enable_state_mali_arch_profiling_add_event_mali_sys_lock_lock_mali_sys_lock_unlock_gles_draw_elements_error_checking_gles_draw_arrays_error_checking_gles_round_down_vertex_count_gles_init_draw_elements_gles_gb_buffer_object_data_range_cache_get_gles_scan_indices_gles_scan_indices_range_gles_init_draw_arrays_gles_draw_elements_gles_gb_draw_indexed_range_gles_draw_arrays_gles_gb_draw_nonindexed_gles1_get_tex_env_gles1_get_clip_plane_gles1_get_pointer_gles1_get_material_gles1_get_light_gles2_get_shader_precision_format_gles2_get_vertex_attrib_gles2_get_vertex_attrib_pointer_gles2_get_pointer_gles_getv_gles_m200_mali_to_gles_stencil_operation_gles_m200_mali_to_gles_conditional_gles_m200_mali_to_gles_blend_func_gles_m200_mali_to_gles_logicop_gles_m200_mali_to_gles_blend_equation_gles_is_enabled_gles_get_tex_param_gles_get_buffer_parameter_gles_get_string_gles_hint_init_gles_hint_gles1_tex_envv_gles1_tex_env_gles_texture_env_init_gles_tex_parameter_v_gles_tex_parameter_gles_active_texture_gles1_active_texture_gles_texture_env_remove_binding_by_ptr_gles_gb_modify_attribute_stream_gles1_client_active_texture_gles2_disable_vertex_attrib_array_gles2_enable_vertex_attrib_array_gles2_vertex_attrib_gles_push_vertex_attrib_type_gles_set_vertex_attrib_pointer_gles1_vertex_pointer_gles1_normal_pointer_gles1_color_pointer_gles1_point_size_pointer_gles1_tex_coord_pointer_gles1_weight_pointer_oes_gles1_matrix_index_pointer_oes_gles2_vertex_attrib_pointer_gles_pixel_init_gles_pixel_storei_gles1_alpha_func_gles_m200_gles_to_mali_conditional_gles1_logic_op_gles_m200_gles_to_mali_logicop_gles2_blend_color_gles2_blend_equation_gles_m200_gles_to_mali_blend_equation_gles_stencil_func_gles_depth_func_gles_pixel_operations_init_scissor_gles_scissor_gles_stencil_op_gles_m200_gles_to_mali_stencil_operation_gles_m200_gles_to_mali_blend_func_gles1_point_size_gles1_point_parameterv_gles1_point_parameter_gles_rasterization_init_gles_front_face_gles_cull_face_gles_line_width_gles_polygon_offset__isnanf_gles_clear_color_gles_clear_depth_gles_clear_stencil_gles_color_mask_gles_framebuffer_control_init_gles_depth_mask_gles_stencil_mask_gles_fetch_per_sample_gles_framebuffer_state_init_gles_program_rendering_state_alloc__mali_program_binary_state_init_gles_program_rendering_state_deref__mali_program_binary_state_reset_gles_fb_free_program_rendering_state_gles_gb_free_program_rendering_state_gles_sample_coverage_gles_depth_range_gles_update_viewport_state_for_egl_gles_viewport_gles_viewport_init_gles_viewport_for_egl_gles_vertex_arrays_state_init_gles_vertex_array_object_init_gles_vertex_arrays_state_deinit_gles_vertex_array_object_deinit_gles_vertex_array_object_wrapper_free_gles_vertex_array_object_new_gles_bind_vertex_array_gles_vertex_array_object_free_gles_delete_vertex_arrays_gles_gen_vertex_arrays_gles_set_error_gles_get_error_gles1_client_state_gles_enable_gles_fb_apply_dither_gles1_push_twosided_lighting_state_gles_debug_state_init_gles1_current_init_gles1_transform_init_gles1_coloring_init_gles1_lighting_init_gles2_vertex_shader_init_gles2_program_env_init_gles_renderbuffer_state_init_gles_debug_state_deinit_gles_renderbuffer_object_deref_gles_delete_renderbuffers_gles_internal_purge_renderbuffer_from_framebuffer_gles_renderbuffer_storage_multisample_gles_renderbuffer_storage_gles_bind_renderbuffer_gles_fbo_bindings_alloc_gles_get_renderbuffer_parameter_gles_egl_image_target_renderbuffer_storage_gles_setup_egl_image_from_renderbuffermali_image_create_from_surface__mali_linked_list_alloc__mali_linked_list_free_gles_fbo_bindings_flag_completeness_dirty__mali_linked_list_get_first_entry__mali_linked_list_get_next_entry_gles_get_attachment_surface_gles_fbo_bindings_add_binding__mali_linked_list_insert_data_gles_fbo_bindings_remove_binding__mali_linked_list_remove_entry__m200_texel_format_get_bpc_gles_internal_purge_texture_from_framebuffer_mali_frame_builder_set_flushmode_gles_delete_framebuffers_gles_check_framebuffer_status_gles_bind_framebuffer_gles_framebuffer_renderbuffer_gles_framebuffer_texture2d_multisample_gles_framebuffer_texture2d_gles_get_framebuffer_attachment_parameter_gles_framebuffer_restore_discarded_attachments_gles_discard_framebuffergetpid_gles_debug_type_to_output_type_gles_debug_message_callback_gles_debug_message_init_gles_debug_state_reinitstrnlenstrdupstrncpy_gles_debug_message_deinit_gles_debug_group_init_gles_debug_group_deinit_gles_debug_report_gles_egl_debug_vreport_gles_get_debug_message_log_gles_debug_message_control_gles_debug_message_insert_gles_push_debug_group_gles_pop_debug_group_gles_object_label_gles_get_object_label_gles_object_ptr_label_gles_get_object_ptr_label_gles2_program_object_list_entry_deleteglAlphaFuncglAlphaFuncxglClearColorxglClearDepthxglClientActiveTextureglClipPlanefglClipPlanexglColor4fglColor4ubglColor4xglColorPointerglDepthRangexglDisableClientStateglDrawTexfOESglDrawTexfvOESglDrawTexiOESglDrawTexivOESglDrawTexsOESglDrawTexsvOESglDrawTexxOESglDrawTexxvOESglEnableClientStateglFogfglFogfvglFogxglFogxvglFrustumfglFrustumxglGetClipPlanefglGetClipPlanexglGetFixedvglGetLightfvglGetLightxvglGetMaterialfvglGetMaterialxvglGetTexEnvfvglGetTexEnvivglGetTexEnvxvglGetTexParameterxvglLightfglLightfvglLightModelfglLightModelfvglLightModelxglLightModelxvglLightxglLightxvglLineWidthxglLoadIdentityglLoadMatrixfglLoadMatrixxglLogicOpglMaterialfglMaterialfvglMaterialxglMaterialxvglMatrixModeglMultiTexCoord4bglMultiTexCoord4fglMultiTexCoord4xglMultMatrixfglMultMatrixxglNormal3fglNormal3xglNormalPointerglOrthofglOrthoxglPointParameterfglPointParameterfvglPointParameterxglPointParameterxvglPointSizeglPointSizexglPolygonOffsetxglPopMatrixglPushMatrixglRotatefglRotatexglSampleCoveragexglScalefglScalexglShadeModelglTexCoordPointerglTexEnvfglTexEnvfvglTexEnviglTexEnvivglTexEnvxglTexEnvxvglTexParameterxglTexParameterxvglTranslatefglTranslatexglVertexPointerglCurrentPaletteMatrixOESglLoadPaletteFromModelViewMatrixOESglMatrixIndexPointerOESglWeightPointerOESglPointSizePointerOESglQueryMatrixxOESglGenFramebuffersOESglIsRenderbufferOESglBindRenderbufferOESglDeleteRenderbuffersOESglGenRenderbuffersOESglRenderbufferStorageOESglGetRenderbufferParameterivOESglIsFramebufferOESglBindFramebufferOESglDeleteFramebuffersOESglCheckFramebufferStatusOESglFramebufferTexture2DOESglFramebufferRenderbufferOESglGetFramebufferAttachmentParameterivOESglGenerateMipmapOESglTexGenfOESglTexGenfvOESglTexGeniOESglTexGenivOESglTexGenxOESglTexGenxvOESglGetTexGenfvOESglGetTexGenivOESglGetTexGenxvOESglAlphaFuncxOESglClearColorxOESglClearDepthxOESglClipPlanexOESglColor4xOESglDepthRangexOESglFogxOESglFogxvOESglFrustumxOESglGetClipPlanexOESglGetFixedvOESglGetLightxvOESglGetMaterialxvOESglGetTexEnvxvOESglGetTexParameterxvOESglLightModelxOESglLightModelxvOESglLightxOESglLightxvOESglLineWidthxOESglLoadMatrixxOESglMaterialxOESglMaterialxvOESglMultMatrixxOESglMultiTexCoord4xOESglNormal3xOESglOrthoxOESglPointParameterxOESglPointParameterxvOESglPointSizexOESglPolygonOffsetxOESglRotatexOESglSampleCoveragexOESglScalexOESglTexEnvxOESglTexEnvxvOESglTexParameterxOESglTexParameterxvOESglTranslatexOESglDepthRangefOESglFrustumfOESglOrthofOESglClipPlanefOESglGetClipPlanefOESglClearDepthfOES_gles2_attach_shader_stub_gles2_bind_attrib_location_stub_gles2_blend_color_stub_gles2_blend_equation_stub_gles2_blend_equation_separate_stub_gles2_blend_func_separate_stub_gles2_compile_shader_stub_gles2_create_program_stub_gles2_create_shader_stub_gles2_delete_program_stub_gles2_delete_shader_stub_gles2_detach_shader_stub_gles2_disable_vertex_attrib_array_stub_gles2_enable_vertex_attrib_array_stub_gles2_get_active_attrib_stub_gles2_get_active_uniform_stub_gles2_get_attached_shaders_stub_gles2_get_attrib_location_stub_gles2_get_program_info_log_stub_gles2_get_programiv_stub_gles2_get_shader_info_log_stub_gles2_get_shaderiv_stub_gles2_get_shader_precision_format_stub_gles2_get_shader_source_stub_gles2_get_uniformfv_stub_gles2_get_uniformiv_stub_gles2_get_uniform_location_stub_gles2_get_vertex_attribfv_stub_gles2_get_vertex_attribiv_stub_gles2_get_vertex_attrib_pointerv_stub_gles2_link_program_stub_gles2_release_shader_compiler_stub_gles2_shader_binary_stub_gles2_shader_source_stub_gles2_stencil_func_separate_stub_gles2_stencil_mask_separate_stub_gles2_stencil_op_separate_stub_gles2_uniform1f_stub_gles2_uniform1fv_stub_gles2_uniform1i_stub_gles2_uniform1iv_stub_gles2_uniform2f_stub_gles2_uniform2fv_stub_gles2_uniform2i_stub_gles2_uniform2iv_stub_gles2_uniform3f_stub_gles2_uniform3fv_stub_gles2_uniform3i_stub_gles2_uniform3iv_stub_gles2_uniform4f_stub_gles2_uniform4fv_stub_gles2_uniform4i_stub_gles2_uniform4iv_stub_gles2_uniform_matrix2fv_stub_gles2_uniform_matrix3fv_stub_gles2_uniform_matrix4fv_stub_gles2_use_program_stub_gles2_validate_program_stub_gles2_vertex_attrib1f_stub_gles2_vertex_attrib1fv_stub_gles2_vertex_attrib2f_stub_gles2_vertex_attrib2fv_stub_gles2_vertex_attrib3f_stub_gles2_vertex_attrib3fv_stub_gles2_vertex_attrib4f_stub_gles2_vertex_attrib4fv_stub_gles2_vertex_attrib_pointer_stub_gles2_get_program_binary_stub_gles2_program_binary_stub_gles2_get_n_uniformfv_ext_stub_gles2_get_n_uniformiv_ext_stub_gles2_bind_framebuffer_oes_stub_gles2_bind_renderbuffer_oes_stub_gles2_delete_renderbuffers_oes_stub_gles2_renderbuffer_storage_oes_stub_gles2_get_renderbuffer_parameter_oes_stub_gles2_gen_framebuffers_oes_stub_gles2_delete_framebuffers_oes_stub_gles2_check_framebuffer_status_oes_stub_gles2_framebuffer_texture2d_oes_stub_gles2_framebuffer_renderbuffer_oes_stub_gles2_get_framebuffer_attachment_parameter_oes_stub_gles2_generate_mipmap_oes_stub_gles2_is_shader_stub_gles2_is_renderbuffer_oes_stub_gles2_is_framebuffer_oes_stub_gles2_is_program_stub_gles2_gen_renderbuffers_oes_stub_gles1_compressed_texture_image_2d_gles1_compressed_texture_sub_image_2d_gles1_copy_texture_image_2d_gles1_copy_texture_sub_image_2d_gles1_delete_textures_gles1_tex_image_2d_gles1_tex_sub_image_2d_gles1_egl_image_target_texture_2d_gles1_clip_plane_gles1_color4_gles1_draw_tex_oes_gles1_draw_tex_fv_oes_gles1_draw_tex_iv_oes_gles1_draw_tex_sv_oes_gles1_fog_gles1_fogv_gles1_frustum_gles1_light_gles1_lightv_gles1_light_model_gles1_light_modelv_gles1_load_identity_gles1_load_matrixf_gles1_load_matrixx_gles1_material_gles1_materialv_gles1_matrix_mode_gles1_multi_tex_coord4_gles1_mult_matrixf_gles1_mult_matrixx_gles1_normal3_gles1_ortho_gles1_pop_matrix_gles1_push_matrix_gles1_rotate_gles1_scale_gles1_shade_model_gles1_translate_gles1_set_current_palette_matrix_oes_gles1_load_palette_from_model_view_matrix_oes_gles1_query_matrixx_gles1_tex_genf_oes_gles1_tex_genfv_oes_gles1_tex_geni_oes_gles1_tex_geniv_oes_gles1_tex_genx_oes_gles1_tex_genxv_oes_gles1_get_tex_genfv_oes_gles1_get_tex_geniv_oes_gles1_get_tex_genxv_oes_gles1_get_proc_address_gles_gb_extract_scissor_parameters_mali_frame_builder_viewport_mali_frame_builder_scissor_gles_m200_is_texture_usable__mali_float_matrix4x4_copy__mali_float_matrix4x4_make_identity_mali_osu_matrix4x4_multiplysqrtfcosfsinf_mali_osu_matrix4x4_translate_mali_osu_matrix4x4_scale__mali_float_matrix4x4_make_frustum__mali_float_matrix4x4_make_ortho_gles_texture_gen_gles_get_texture_gen__mali_float_matrix4x4_invert_mali_osu_matrix4x4_transpose__gles_build_infoglAttachShaderglBindAttribLocationglBlendColorglBlendEquationglBlendEquationSeparateglBlendFuncSeparateglCompileShaderglCreateProgramglCreateShaderglDeleteProgramglDeleteShaderglDetachShaderglDisableVertexAttribArrayglEnableVertexAttribArrayglGetActiveAttribglGetActiveUniformglGetAttachedShadersglGetAttribLocationglGetProgramInfoLogglGetProgramivglGetShaderInfoLogglGetShaderivglGetShaderPrecisionFormatglGetShaderSourceglGetUniformfvglGetUniformivglGetUniformLocationglGetVertexAttribfvglGetVertexAttribivglGetVertexAttribPointervglIsProgramglIsShaderglLinkProgramglGetProgramBinaryOESglProgramBinaryOESglReleaseShaderCompilerglShaderBinaryglShaderSourceglStencilFuncSeparateglStencilMaskSeparateglStencilOpSeparateglUniform1fglUniform1fvglUniform1iglUniform1ivglUniform2fglUniform2fvglUniform2iglUniform2ivglUniform3fglUniform3fvglUniform3iglUniform3ivglUniform4fglUniform4fvglUniform4iglUniform4ivglUniformMatrix2fvglUniformMatrix3fvglUniformMatrix4fvglUseProgramglValidateProgramglVertexAttrib1fglVertexAttrib1fvglVertexAttrib2fglVertexAttrib2fvglVertexAttrib3fglVertexAttrib3fvglVertexAttrib4fglVertexAttrib4fvglVertexAttribPointerglIsRenderbufferglBindRenderbufferglDeleteRenderbuffersglGenRenderbuffersglRenderbufferStorageglGetRenderbufferParameterivglIsFramebufferglBindFramebufferglDeleteFramebuffersglGenFramebuffersglCheckFramebufferStatusglFramebufferTexture2DglFramebufferRenderbufferglGetFramebufferAttachmentParameterivglGenerateMipmapglGetnUniformfvEXTglGetnUniformivEXT_gles1_alpha_func_stub_gles1_alpha_funcx_stub_gles1_client_active_texture_stub_gles1_clip_planef_stub_gles1_clip_planex_stub_gles1_color4f_stub_gles1_color4ub_stub_gles1_color4x_stub_gles1_color_pointer_stub_gles1_current_palette_matrix_oes_stub_gles1_disable_client_state_stub_gles1_draw_tex_fv_oes_stub_gles1_draw_tex_iv_oes_stub_gles1_draw_tex_sv_oes_stub_gles1_draw_tex_oes_stub_gles1_enable_client_state_stub_gles1_fogf_stub_gles1_fogfv_stub_gles1_fogx_stub_gles1_fogxv_stub_gles1_frustumf_stub_gles1_frustumx_stub_gles1_get_clip_planef_stub_gles1_get_clip_planex_stub_gles1_get_fixedv_stub_gles1_get_lightfv_stub_gles1_get_lightxv_stub_gles1_get_materialfv_stub_gles1_get_materialxv_stub_gles1_get_tex_envfv_stub_gles1_get_tex_enviv_stub_gles1_get_tex_envxv_stub_gles1_get_tex_parameterxv_stub_gles1_lightf_stub_gles1_lightfv_stub_gles1_light_modelf_stub_gles1_light_modelfv_stub_gles1_light_modelx_stub_gles1_light_modelxv_stub_gles1_lightx_stub_gles1_lightxv_stub_gles1_line_widthx_stub_gles1_logic_op_stub_gles1_materialf_stub_gles1_materialfv_stub_gles1_materialx_stub_gles1_materialxv_stub_gles1_matrix_index_pointer_oes_stub_gles1_matrix_mode_stub_gles1_multi_tex_coord4b_stub_gles1_multi_tex_coord4f_stub_gles1_multi_tex_coord4x_stub_gles1_normal3f_stub_gles1_normal3x_stub_gles1_normal_pointer_stub_gles1_orthof_stub_gles1_orthox_stub_gles1_point_parameterf_stub_gles1_point_parameterfv_stub_gles1_point_parameterx_stub_gles1_point_parameterxv_stub_gles1_point_size_stub_gles1_point_size_pointer_oes_stub_gles1_point_sizex_stub_gles1_polygon_offsetx_stub_gles1_pop_matrix_stub_gles1_push_matrix_stub_gles1_shade_model_stub_gles1_tex_coord_pointer_stub_gles1_tex_envf_stub_gles1_tex_envfv_stub_gles1_tex_envi_stub_gles1_tex_enviv_stub_gles1_tex_envx_stub_gles1_tex_envxv_stub_gles1_tex_parameterx_stub_gles1_tex_parameterxv_stub_gles1_vertex_pointer_stub_gles1_weight_pointer_oes_stub_gles1_tex_genf_oes_stub_gles1_tex_genfv_oes_stub_gles1_tex_geni_oes_stub_gles1_tex_geniv_oes_stub_gles1_tex_genx_oes_stub_gles1_tex_genxv_oes_stub_gles1_get_tex_genfv_oes_stub_gles1_get_tex_geniv_oes_stub_gles1_get_tex_genxv_oes_stub_gles1_bind_framebuffer_oes_stub_gles1_bind_renderbuffer_oes_stub_gles1_delete_renderbuffers_oes_stub_gles1_renderbuffer_storage_oes_stub_gles1_get_renderbuffer_parameter_oes_stub_gles1_gen_renderbuffers_oes_stub_gles1_gen_framebuffers_oes_stub_gles1_delete_framebuffers_oes_stub_gles1_check_framebuffer_status_oes_stub_gles1_framebuffer_texture2d_oes_stub_gles1_framebuffer_renderbuffer_oes_stub_gles1_get_framebuffer_attachment_parameter_oes_stub_gles1_generate_mipmap_oes_stub_gles1_translatex_stub_gles1_is_renderbuffer_oes_stub_gles1_is_framebuffer_oes_stub_gles1_clear_colorx_stub_gles1_clear_depthx_stub_gles1_depth_rangex_stub_gles1_load_identity_stub_gles1_load_matrixf_stub_gles1_load_matrixx_stub_gles1_load_palette_from_model_view_matrix_oes_stub_gles1_mult_matrixf_stub_gles1_mult_matrixx_stub_gles1_query_matrixx_oes_stub_gles1_rotatef_stub_gles1_rotatex_stub_gles1_sample_coveragex_stub_gles1_scalef_stub_gles1_scalex_stub_gles1_translatef_stub_gles2_compressed_texture_image_2d_gles2_compressed_texture_sub_image_2d_gles2_copy_texture_image_2d_gles2_copy_texture_sub_image_2d_gles2_delete_textures_gles2_tex_image_2d_gles2_tex_sub_image_2d_gles2_egl_image_target_texture_2d_gles2_attach_shader_gles2_bind_attrib_location_gles2_compile_shader_gles2_create_program_gles2_create_shader_gles2_delete_program_gles2_delete_shader_gles2_detach_shader_gles2_get_active_attrib_gles2_get_active_uniform_gles2_get_attached_shaders_gles2_get_attrib_location_gles2_get_program_info_log_gles2_get_programiv_gles2_get_shader_info_log_gles2_get_shader_gles2_get_shader_source_gles2_get_uniform_gles2_get_uniform_location_gles2_is_program_gles2_is_shader_gles2_link_program_gles2_release_shader_compiler_gles2_shader_binary_gles2_shader_source_gles2_uniform_gles2_uniform1i_gles2_validate_program_gles2_get_program_binary_gles2_program_binary_gles2_get_n_uniform_ext_gles2_get_proc_address_gles2_program_internal_alloc__mali_linked_list_init__mali_linked_list_deinit_gles2_program_internal_free_gles2_clear_attrib_bindings_gles2_program_internal_get_type_gles2_program_internal_unattach_gles2_shader_object_deref_gles2_shader_internal_free_gles2_link_attributes_gles2_setup_magic_uniforms_gles2_create_gl_uniform_location_table_gles_fb_alloc_program_rendering_state_gles_gb_alloc_program_rendering_state_gles2_create_fp16_fs_uniform_cache_gles2_fill_fp16_fs_uniform_cachebs_set_errorbs_is_error_log_set_to_out_of_memory__mali_merge_binary_shaders__mali_link_binary_shadersbs_set_program_validate_error_sampler_out_of_rangebs_set_program_validate_error_sampler_of_different_types_share_unitbs_get_logbs_get_log_lengthbs_symbol_longest_location_name_lengthbs_symbol_count_actives_gles_active_filters__mali_shader_binary_state_initbs_set_error_out_of_memory__mali_binary_shader_load__mali_shader_binary_state_resetbs_read_or_skip_headerbs_read_and_allocate_stringbs_symbol_count_locationsbs_symbol_fill_location_tablebs_symbol_lookup_gles2_convert_datatype_to_gltypebs_symbol_get_nth_activebs_lookup_uniform_location__mali_linked_list_emptybs_set_program_link_error_attribute_bound_outsize_of_legal_range_mali_gp2_link_attribs_gles2_shader_internal_alloc_gles2_shader_object_get_hash_mali_hash_sha1_init_mali_hash_sha1_update_mali_hash_sha1_final__mali_compile_essl_shader__gles20_build_info_mali_pixel_to_texel_format_mali_pixel_layout_to_texel_layout_gles_m200_get_input_texels_per_byte_gles_fb_texture_memory_init_gles_fb_texture_object_free_gles_fb_texture_memory_reset_gles_m200_get_texel_pitch_gles_fb_texture_memory_assign_gles_fb_texture_memory_allocate_gles_texture_object_resolve_constraints_gles_fb_texture_memory_resolve_internal_gles_m200_td_update_gles_get_texobj_from_sampler_gles_add_disabled_texobj_to_remap_table_gles_texture_used_in_drawcall_gles_fb_texture_memory_draw_internal_renderable_gles_add_texobj_to_remap_table_mali_callback_list_resize_gles_m200_update_texture_descriptorsinit_pilot_job_rsw_gles_m200_setup_fragment_pilot_job_mali_pilot_jobs_add_pp_drawcall_gles_m200_update_fragment_uniforms_mali_frame_builder_fragment_stack_alloc_gles_setup_prerotate_uniforms_gles_write_prerotate_uniforms_gles_m200_update_shader_gles_m200_set_rsw_parameters_gles_fb_context_deinit_mali_frame_builder_update_fragment_stack_gles_fb_setup_rsw_const_gles_fb_setup_rsw_shader_gles_gb_alloc_position_mali_surface_specifier_datasize_mali_surface_alloc_memlogf_mali_mem_wait_writer_fence_mali_surface_replace_instance__mali_named_list_set__mali_named_list_lock__mali_named_list_unlock__mali_named_list_size__mali_linked_list_lock__mali_linked_list_unlock_mali_pixel_format_get_bpc_mali_texel_to_pixel_format_mali_surface_alloc_empty_mali_surface_specifier_calculate_minimum_pitch_mali_base_common_mem_cow_memory_mali_fence_create_mali_mem_get_writer_fence_mali_fence_destroymali_image_get_yuv_infomali_image_supported_yuv_formatmali_image_set_plane_formatmali_image_get_buffer_sizepowmali_image_allocate_buffermali_image_allocate_buffersmali_image_surface_is_mappedmali_image_releasemali_image_deref_surfacesmali_image_derefmali_image_createmali_image_create_from_cpu_memorymali_image_create_from_ump_or_mali_memory_mali_base_common_mem_wrap_dma_bufmali_image_create_from_external_memorymali_image_get_buffermali_image_set_datamali_image_lockmali_image_unlockmali_image_unlock_all_sessions_mali_image_create_sync_handle_mali_image_lock_sync_handle_mali_image_unlock_sync_handle_mali_mem_pool_init_mali_mem_pool_destroy_mem_pool_set_new_block_mali_mem_pool_alloc_with_handle_and_offsetbs_peek_header_namebs_create_subblock_streambs_read_VPRO_blockbs_read_and_allocate_binary_block_contentsbs_copy_binary_block__mali_shader_binary_store_binary_blockqsortbs_symbol_allocbs_update_symbol_block_sizebs_symbol_free__mali_binary_shader_load_uniform_tablebs_symbol_table_allocbs_symbol_table_freebs_symbol_precision_comparebs_symbol_merge_shadertype_specificsbs_symbol_type_comparebs_symbol_count_samplersbs_symbol_get_nth_samplerbs_setup_attribute_streams__mali_binary_shader_load_attribute_table__mali_binary_shader_load_varying_tablebs_set_program_link_error_type_mismatch_varyingbs_set_program_link_error_missing_vertex_shader_varyingbs_clear_errorbs_symbol_get_nth_location__mali_gp2_rewrite_vertex_shader_varying_locations_essl_new_compiler_essl_run_compiler_essl_get_error_log_size_essl_get_error_log_essl_destroy_compiler_essl_get_binary_shader_size_essl_get_binary_shader_m200_wb_reg_write_m200_td_getm200_texture_descriptor_set_defaults_mali_base_arch_pp_get_num_enabled_cores_mali_tilelist_setup_flush_mali_tilelist_dispatcher_alloc_mali_tilelist_dispatcher_free_mali_tilelist_dispatcher_assign_mali_gp_cmdlist_extend_mali_frame_builder_depth_range_mali_frame_builder_heaps_current_plbuheap_size_mali_frame_builder_alloc_internal_frame_mali_base_common_frame_id_get_new_mali_gp_job_new_mali_frame_builder_setup_automatic_readbacks_mali_frame_builder_damage_region_reset_mali_frame_builder_rotate_internal_frame_mali_frame_builder_job_limiter_free_mali_frame_builder_heaps_free_mali_base_common_frame_builder_id_get_new_mali_frame_builder_heaps_alloc_mali_base_arch_request_high_priority_mali_frame_builder_job_limiter_alloc_mali_frame_builder_free_internal_frame_mali_frame_builder_discard_virtual_attachments_mali_frame_builder_discard_surface_write_back_mali_frame_builder_damage_region_set_mali_viewport_orientation_get_frame_register_value_mali_frame_builder_full_swap_mali_frame_builder_output_yuv420sp_mali_frame_builder_set_yuv_output__m200_texel_format_get_bytes_per_copy_element__m200_texel_format_has_alpha__m200_texel_format_is_alpha__m200_texel_format_has_luminance__m200_texel_format_is_luminance__m200_texel_format_is_intensity_mali_surfacetracking_alloc_mali_surfacetracking_addref_mali_surfacetracking_sort_mali_surfacetracking_reset_mali_surfacetracking_deref_mali_surfacetracking_add_mali_surfacetracking_clone_mali_surfacetracking_start_track_mali_surfacetracking_stop_track_mali_surfacetracking_remove_readcounter_from_read_deps_mali_surfacetracking_remove_surface_read_counter_on_dirty_bit_mali_surfacetracking_add_fence_to_read_deps_mali_mem_add_writer_fence_mali_surfacetracking_attach_mem_to_job_mali_pp_job_new_mali_pp_job_free_mali_pilot_jobs_add_gp_drawcall_mali_pilot_jobs_pp_flush_mali_pp_job_add_fence_mali_pp_job_start_mali_pilot_jobs_reset_mali_base_common_mem_heap_alloc_mali_frame_builder_heaps_get_next_plbu_heap_mali_base_common_mem_heap_get_end_address_of_first_block_mali_base_common_mem_heap_get_start_address_mali_frame_builder_heaps_register_plbu_heap_usage_mali_base_common_mem_heap_used_bytes_get_mali_frame_builder_heaps_reset_plbu_heap_mali_base_common_mem_heap_reset_mali_frame_builder_job_flow_cleanup_mali_base_arch_get_setting_mali_sw_counters_dump_mali_frame_builder_job_flow_gp_callback_mali_frame_builder_job_limiter_gp_stop_event_mali_frame_builder_free_internal_flush_mali_frame_builder_job_flow_pp_callback_mali_frame_builder_job_limiter_pp_stop_event_mali_frame_builder_gp_job_setup_mali_frame_builder_alloc_internal_flush_gp_mali_gp_job_set_callback_mali_frame_builder_pp_job_create_setup_mali_frame_builder_alloc_internal_flush_pp_mali_callback_list_execute_mali_callback_list_execute_and_reset_mali_frame_builder_set_acquire_output_callback_mali_arch_pp_job_disable_wb_mali_gp_job_free_mali_frame_prepare_for_flush_mali_gp_job_allocate_deferred_bind_info_mali_gp_job_free_deferred_bind_info_mali_frame_builder_job_limiter_gp_start_event_mali_frame_builder_job_limiter_pp_start_event_mali_gp_job_add_fence_mali_gp_job_add_deferred_bind_info_mali_base_common_submit_limiter_add_submit_event_mali_gp_job_piggyback_mali_fence_merge_mali_base_common_context_get_global_pp_fence_mali_fence_reset_mali_frame_builder_finalize_gp_job_switch_out_mali_frame_builder_create_switch_in_job_mali_base_arch_pp_get_num_total_cores_mali_frame_builder_reset_fragment_stack_mali_fbdump_setup_callbacks_mali_sys_lock_destroy_mali_sys_lock_create_mali_frame_builder_job_limiter_frame_start_event_mali_frame_builder_job_limiter_frame_stop_event_mali_sw_counters_free_mali_base_mem_free_mem_list_mali_sw_counters_alloc_mali_osu_tex8_l_to_tex8_b_full_block_8x8_block_mali_osu_intrinsics_tex32_l_to_tex32_b_8x8_block_mali_osu_intrinsics_tex16_l_to_tex16_b_8x8_block_mali_osu_intrinsics_tex24_l_to_tex24_b_8x8_block_mali_convert_intrinsics_8x8_tilemali_convert_nonlinear_to_linear_lutmali_convert_linear_to_nonlinear_lut_mali_convert_tex8_24_l_to_tex24_8_b_mali_convert_tex32_l_to_tex16_b_mali_convert_tex8_l_to_tex8_b_mali_convert_tex16_l_to_tex16_b_mali_convert_tex24_l_to_tex24_b_mali_convert_tex16_l_to_tex24_x8_b_mali_convert_tex32_l_to_tex24_x8_b_mali_convert_tex32_l_to_tex32_b__memcpy_chk_mali_convert_setup_conversion_rules_mali_convert_can_do_fastpath_mali_convert_ETC_swizzle_partial_mali_convert_ETC_swizzle_mali_noconvert_memcpy_mali_convert_neon_full_block_mali_osu_tex8_l_to_tex8_b_full_block_mali_osu_tex32_l_to_tex32_b_full_block_mali_osu_tex16_l_to_tex16_b_full_block_mali_osu_tex24_l_to_tex24_b_full_block_mali_convert_texture_common_mali_convert_texture_vg_mali_convert_get_16bit_shifts_mali_convert_get_16bit_component_size_mali_convert_get_from_8bit_to_rgba8888_byte_indices_mali_convert_get_from_rgba8888_to_8bit_byte_indices_mali_arch_profiling_report_sw_counters_mali_sw_counters_reset_mali_fbdump_dump_callback_mali_base_common_cinstr_if_enable_mali_arch_profiling_annotate_setup_mali_base_common_cinstr_qmanager_dequeue_bufferclock_gettime_mali_base_common_cinstr_qmanager_queue_buffer_mali_arch_profiling_annotate_lock_mali_arch_profiling_annotate_write_mali_arch_profiling_annotate_flush_mali_arch_profiling_annotate_unlock_mali_fbdump_is_requested_gles_vertex_shadergen_generate_shader_gles_piecegen_get_uniform_initializers_gles_fragment_shadergen_generate_shader_gles_fragment_shadergen_states_equivalentegl_compare_func__egl_get_config_ptr__egl_initialize_configs__egl_get_display_ptr__egl_add_config_handle__egl_lock_surface_initialize_configs__egl_platform_filter_configs_egl_config_support_pixmap__egl_platform_pixmap_config_compatible_egl_get_configs__egl_get_check_display__egl_check_display_initialized__egl_check_null_value__egl_check_display_not_terminating__egl_get_config_handles_egl_choose_config__egl_set_error__egl_get_config_handle_by_id__egl_platform_pixmap_valid_egl_get_config_attrib__egl_get_check_config__egl_platform_window_valid__egl_get_display_handle_egl_destroy_surface_internal_egl_bind_api__egl_gles_make_current_egl_query_api__egl_allocate_context__egl_context_unbind_bound_surface__egl_release_context__egl_gles_release_context_egl_create_context__egl_get_context_ptr__egl_gles_create_context__egl_add_context_handle_egl_destroy_context_internal__egl_remove_context_handle_egl_destroy_context__egl_get_check_context_egl_query_context_egl_make_current__egl_get_check_surface__egl_get_current_thread_state_api__egl_mali_post_to_pbuffer_surface__egl_gles_remove_framebuilder_from_client_ctx__egl_release_display__egl_thread_state_assure_worker_thread_exists__egl_platform_supports_vsync_egl_get_current_context__egl_get_context_handle__egl_get_main_context__egl_main_close_mali__egl_get_platform_typewl_display_interfacegbm_create_device_egl_get_current_display_egl_initialize__egl_main_open_mali__egl_create_handles__egl_destroy_handles__egl_platform_default_display__egl_platform_display_valid__egl_platform_init_display__egl_platform_display_get_format__egl_platform_deinit_display__egl_remove_display_handle_egl_get_display__egl_set_platform_implementations__egl_get_native_display_handle__egl_add_display_handle_egl_terminate__egl_release_surface_handles__egl_release_context_handles__egl_release_image_handles__egl_release_sync_handles_egl_release_thread__egl_free_all_displays__egl_main_initialized__egl_get_first_display_handleeglGetConfigs__egl_get_current_thread_state__egl_release_current_thread_stateeglChooseConfigeglGetConfigAttribeglGetError_egl_get_erroreglQueryString_egl_query_stringeglWaitClient_egl_wait_clienteglWaitGL_egl_wait_GLeglWaitNative_egl_wait_nativeeglSwapBuffers_egl_swap_bufferseglCopyBuffers_egl_copy_bufferseglSwapInterval_egl_swap_intervaleglBindTexImage_egl_bind_tex_imageeglReleaseTexImage_egl_release_tex_imageeglBindAPIeglQueryAPIeglCreateContexteglDestroyContexteglQueryContexteglMakeCurrent__egl_lock_surface__egl_unlock_surfaceeglGetCurrentContexteglGetDisplay__egl_image_mutex_lock__egl_image_mutex_unlockeglGetCurrentDisplayeglInitializeeglTerminateeglCreateWindowSurface_egl_create_window_surfaceeglCreatePbufferSurface_egl_create_pbuffer_surfaceeglCreatePbufferFromClientBuffer_egl_create_pbuffer_from_client_buffereglCreatePixmapSurface_egl_create_pixmap_surfaceeglDestroySurface_egl_destroy_surfaceeglQuerySurface_egl_query_surfaceeglSurfaceAttrib_egl_surface_attribeglGetCurrentSurface_egl_get_current_surfaceeglReleaseThread__egl_all_mutexes_lock__egl_destroy_main_context_if_threads_released__egl_all_mutexes_unlockeglGetProcAddress_egl_get_proc_addresseglCreateImageKHR_egl_create_image_KHReglDestroyImageKHR_egl_destroy_image_KHReglLockSurfaceKHR_egl_lock_surface_KHReglUnlockSurfaceKHR_egl_unlock_surface_KHReglQuerySurface64KHR_egl_query_surface64_KHReglSetBlobCacheFuncsANDROID_egl_set_blob_cache_funcs_ANDROIDeglSetDamageRegionKHR_egl_set_damage_region_KHReglGetPlatformDisplayEXTeglCreatePlatformWindowSurfaceEXTeglCreatePlatformPixmapSurfaceEXT_mali_base_common_context_destroy__egl_platform_terminate__egl_destroy_main_context_mali_sys_lock_try_lock_mali_sys_mutex_try_lock__egl_gles_shutdownegl_linker_deinit_mali_base_worker_destroy_mali_sys_mutex_auto_initgetenvegl_linker_init__egl_gles_initialize_mali_base_worker_createegl_funcptrs__egl_get_image_ptr_implicit__egl_threadlist_mutex_lock__egl_threadlist_mutex_unlock__egl_main_mutex_lock__egl_main_mutex_unlock__egl_sync_mutex_lock__egl_sync_mutex_unlock__egl_main_mutex_action_mali_base_common_context_create__egl_platform_initializemali_egl_cleanup_internal__LINUXeglDestructor__egl_gles_get_proc_address_egl_get_proc_address_internal__egl_mali_render_surface_to_pixmap__egl_platform_begin_new_frame__egl_gles_set_framebuilder__egl_platform_wait_native__egl_lock_surface_is_locked__egl_mali_post_to_window_surface__egl_platform_start_rendering__egl_platform_pixmap_copybuffers_compatible__egl_platform_swap_interval__egl_gles_bind_tex_image__egl_gles_unbind_tex_image_egl_fence_flush__egl_gles_fence_flush__egl_mali_resize_surface_egl_surface_release_all_dependencies__egl_gles_context_resize_finish__egl_platform_resize_surface__egl_mali_create_frame_builder__egl_mali_destroy_frame_builder__egl_mali_begin_new_frame__egl_run_postprocessing_and_swap_egl_surface_job_decref__egl_platform_soft_job_callback__egl_platform_swap_buffers__egl_mali_readback_surfacepx3se_sr_check__fprintf_chk__egl_mali_surface_post_processing_needed_egl_surface_job_incref__egl_mali_internal_buffer_release__egl_mali_create_soft_job__egl_mali_setup_soft_job_callback__egl_mali_start_soft_job_mali_soft_job_free__egl_platform_surface_buffer_invalidstderr__egl_platform_get_buffer__egl_platform_stop_rendering__egl_platform_pixmap_support_gpu_access__egl_platform_map_pixmap__egl_platform_copy_buffers__egl_platform_unmap_pixmap__egl_mali_render_pixmap_to_surface__egl_extensions__egl_gles_image_target_texture_2d__egl_gles_image_target_renderbuffer_storageeglSwapBuffersWithDamageKHReglSwapBuffersWithDamageEXTeglCreateSyncKHReglDestroySyncKHReglClientWaitSyncKHReglGetSyncAttribKHReglSignalSyncKHReglBindWaylandDisplayWLeglUnbindWaylandDisplayWLeglQueryWaylandBufferWL_egl_surface_wait_for_jobs__egl_platform_wait_swap_complete__egl_release_surface__egl_lock_surface_release__egl_platform_destroy_surface__egl_release_surface_content__egl_is_lockable_window_surface__egl_surface_allocate__egl_platform_create_surface__egl_platform_flush_display__egl_remove_surface_handle__egl_get_surface_ptr__egl_lock_surface_attrib__egl_mali_internal_buffer_allocate__egl_mali_attach_internal_and_window_buffers_to_fbuilder__egl_get_surface_handle__egl_lock_surface_map_buffer__egl_platform_query_buffer_age_egl_surface_access_done_callback_common_egl_surface_cpu_access_callback_egl_surface_cpu_access_done_callback_egl_surface_gpu_write_callback_egl_surface_gpu_write_done_callback_egl_surface_gpu_read_callback_egl_surface_gpu_read_done_callback_egl_surface_destroy_callback_egl_surface_update_texture_callback__egl_platform_update_image__egl_surface_update_display_orientation__egl_create_surface__egl_lock_surface_initialize__egl_native_window_handle_exists__egl_platform_create_dummy_window__egl_platform_pixmap_surface_compatible__egl_platform_get_window_size__egl_platform_get_pixmap_size__egl_add_surface_handle__egl_platform_get_native_window__egl_platform_window_compatible__egl_native_pixmap_handle_exists__egl_platform_get_native_pixmap__egl_surface_find_spare_wb_unit__egl_surface_set_window_buffer_to_fbuilderusleepsched_yield__egl_thread_state_create_mali_sys_thread_get_current__egl_get_handle_ptr__egl_get_image_ptr__egl_get_sync_ptr__egl_get_handle__egl_get_config_handle__egl_get_image_handle__egl_get_sync_handle__egl_add_handle__egl_add_image_handle__egl_add_sync_handle__egl_remove_handle__egl_remove_image_handle__egl_remove_sync_handle__egl_client_buffer_handle_exists_egl_destroy_image_egl_destroy_sync__egl_get_check_image__egl_get_check_sync_egl_image_set_default_properties__egl_lock_image__egl_unlock_image_egl_release_image_egl_image_unmap_dma_buf_egl_create_image_egl_image_is_sibling_egl_create_image_KHR_pixmap_egl_create_image_KHR_gles_egl_create_image_dma_buf_egl_create_image_wayland_buffer_egl_create_image_internal__egl_platform_pixmap_egl_image_compatible__egl_platform_get_pixmap_colorspace__egl_gles_setup_egl_imagemali_egl_image_set_errormali_egl_image_initmali_egl_image_get_errormali_egl_image_verify_imagemali_egl_image_parse_attribute_listmali_egl_image_create_parse_attribute_listmali_egl_image_lock_ptrmali_egl_image_unlock_ptrmali_egl_image_set_datamali_egl_image_get_widthmali_egl_image_get_heightmali_egl_image_get_formatmali_egl_image_get_miplevelsmali_egl_image_map_buffermali_egl_image_unmap_buffermali_egl_image_get_buffer_widthmali_egl_image_get_buffer_heightmali_egl_image_get_buffer_secure_idmali_egl_image_get_buffer_layoutmali_egl_image_create_syncmali_egl_image_set_syncmali_egl_image_unset_syncmali_egl_image_wait_syncmali_egl_image_createmali_egl_image_destroy__egl_platform_lock_surface_map_buffer__egl_lock_surface_unmap_buffer__egl_platform_lock_surface_unmap_buffer__egl_build_info_egl_memory_import_buffer_from_nameioctl_egl_memory_import_buffer_from_fd_egl_memory_create_mali_memory_from_handle_egl_memory_get_handle_from_mali_memory_mali_base_common_mem_get_dma_buf_descriptor_egl_memory_get_name_from_handle_egl_memory_release_reference_egl_memory_destroy_buffer_egl_memory_export_buffer_name_from_native_handle_egl_memory_export_buffer_fd_from_native_handle_egl_memory_create_buffer_egl_memory_map_buffer_egl_memory_unmap_buffer__egl_platform_surface_post_processing_needed_mali_soft_job_new_mali_soft_job_add_fence_mali_soft_job_set_activated_callback__egl_platform_setup_soft_job_callback__egl_soft_job_callback_mali_arch_soft_job_start__egl_mali_release_soft_job_mali_arch_soft_job_signal_mali_base_worker_task_addgnu_dev_majorgnu_dev_minor__snprintf_chkfopenfgetsstrncatfclose__egl_platform_initialize_drm__egl_platform_terminate_drm__egl_platform_default_display_drm__egl_platform_display_valid_drm__egl_platform_get_display_orientation_drm__egl_platform_init_display_drmdrm_fd__egl_platform_filter_configs_drm__egl_platform_flush_display_drm__egl_platform_deinit_display_drm__egl_platform_display_get_format_drm__egl_platform_wait_native_drm__egl_platform_get_buffer_drmgbm_bo_destroygbm_bo_create__egl_platform_begin_new_frame_drm__egl_platform_create_surface_drmgbm_surface_ref__egl_platform_destroy_surface_drmgbm_surface_unref__egl_platform_resize_surface_drm__egl_platform_get_pixmap_size_drm__egl_platform_get_pixmap_colorspace_drm__egl_platform_get_pixmap_alphaformat_drm__egl_platform_get_pixmap_format_drm__egl_platform_get_pixmap_alphaformat__egl_platform_pixmap_valid_drm__egl_platform_pixmap_support_gpu_access_drm__egl_platform_pixmap_config_compatible_drm__egl_platform_pixmap_surface_compatible_drm__egl_platform_pixmap_copybuffers_compatible_drm__egl_platform_pixmap_egl_image_compatible_drm__egl_platform_map_pixmap_drm__egl_platform_get_pixmap_format__egl_platform_unmap_pixmap_drm__egl_platform_unmap_image_buffer_drm__egl_platform_swap_buffers_drmgbm_finish_rendering__egl_platform_pixmap_get_mali_memory_drm__egl_platform_surface_buffer_invalid_drm__egl_platform_copy_buffers_drm__egl_platform_get_window_size_drm__egl_platform_window_valid_drm__egl_platform_window_compatible_drmgbm_get_bpp_from_gbm_format__egl_platform_supports_vsync_drm__egl_platform_lock_surface_map_buffer_drm__egl_platform_lock_surface_unmap_buffer_drm__egl_platform_register_lock_item_drm__egl_platform_unregister_lock_item_drm__egl_platform_process_lock_item_drm__egl_platform_release_lock_item_drm__egl_platform_update_image_drm__egl_platform_setup_soft_job_callback_drm__egl_platform_soft_job_callback_drm__egl_platform_surface_post_processing_needed_drm__egl_platform_swap_interval_drm__egl_platform_start_rendering_drmgbm_start_rendering__egl_platform_stop_rendering_drm__egl_platform_query_buffer_age_drmmali_buffer_sharing_interfacewl_buffer_interface_egl_image_map_dma_buf_yuv_egl_image_map_dma_buf_rgb_egl_image_map_dma_buf_egl_image_dma_buf_parse_attribute_list__egl_gles_resize_surface__egl_gles_set_egl_image_caps__egl_gles_make_not_currentegl_linker_init_vgegl_linker_init_glesegl_linker_init_sharedegl_linker_verify_monolithic_glesegl_linker_verify_monolithicdlopendlerrordlclose_egl_create_sync_KHR_egl_destroy_sync_KHR_egl_get_sync_attrib_KHR_egl_signal_sync_KHR_egl_client_wait_sync_KHR_mali_sys_lock_timed_lock_egl_swap_buffers_with_damage_mali_sys_load_config_strings_mali_base_arch_sys_load_config_strings_mali_base_arch_sys_spinlock_create_mali_base_arch_sys_spinlock_lock_mali_sys_spinlock_try_lock_mali_base_arch_sys_spinlock_try_lock_mali_base_arch_sys_spinlock_unlock_mali_base_arch_sys_spinlock_destroy_mali_base_arch_sys_mutex_auto_init_mali_sys_mutex_static_mali_base_arch_sys_mutex_static_mali_base_arch_sys_mutex_create_mali_base_arch_sys_mutex_destroy_mali_base_arch_sys_mutex_lock_mali_base_arch_sys_mutex_try_lock_mali_base_arch_sys_mutex_unlock_mali_base_arch_sys_lock_create_mali_sys_lock_auto_init_mali_base_arch_sys_lock_auto_init_mali_base_arch_sys_lock_destroy_mali_base_arch_sys_lock_lock_mali_base_arch_sys_lock_timed_lock_mali_base_arch_sys_lock_try_lock_mali_base_arch_sys_lock_unlock_mali_base_arch_sys_thread_key_set_data_mali_base_arch_sys_thread_key_get_data_mali_base_arch_sys_thread_get_current_mali_sys_abort_mali_base_arch_sys_abort_mali_sys_break_mali_base_arch_sys_break_mali_base_common_sync_handle_core_new_mali_base_common_sync_handle_new_mali_base_common_sync_handle_cb_function_set_mali_base_common_sync_handle_add_mem_to_free_list_mali_base_common_mem_list_insert_after_mali_base_common_sync_handle_get_wait_handle_mali_base_arch_sys_wait_handle_create_mali_base_common_sync_handle_register_reference_mali_base_common_sync_handle_release_reference_mali_base_arch_sys_wait_handle_trigger_mali_base_common_mem_list_free_mali_base_common_sync_handle_flush_mali_base_common_sync_handle_add_to_sync_handle_mali_base_arch_mem_free_descriptor_mali_base_arch_descriptor_clear_mali_base_arch_mem_release_memory_mali_base_arch_mem_allocate_descriptor_mali_base_common_mem_open_mali_base_arch_mem_open_mali_base_arch_mem_get_capability_sets_mali_base_arch_mem_init_bank_mali_base_arch_mem_close_mali_base_arch_mem_get_memory_mali_fence_init_mali_base_common_resize_mem_alloc_mali_base_arch_mem_cow_memory_mali_base_common_mem_modify_cow_memory_mali_base_arch_mem_modify_cow_memory_mali_base_common_mem_resize_mali_base_arch_mem_resize_mali_base_common_mem_get_total_allocated_size_mali_base_common_mem_free_unused_mem_mali_base_common_mem_alignment_get_mali_base_common_mem_usage_get_mali_base_common_mem_list_insert_before_mali_base_common_mem_list_get_next_mali_base_common_mem_list_get_previous_mali_base_common_mem_list_remove_item_mali_base_common_mem_close_mali_fence_term_mali_base_arch_mem_dma_buf_unbind_mali_base_arch_release_phys_mem_mali_base_common_mem_list_size_getmemory_type_is_swappablememory_type_is_secure_mali_base_common_mem_heap_get_blocksize_mali_base_common_mem_heap_get_max_size_mali_base_common_mem_is_heap_mali_base_common_heap_read64_mali_base_common_heap_write64_mali_base_common_mem_order_get_mali_base_common_heap_intern_set_last_heap_addr_mali_base_common_mem_heap_get_end_address_mali_base_common_mem_heap_out_of_memory_mali_base_common_mem_add_phys_mem_mali_base_arch_mem_add_phys_mem_mali_base_arch_mem_dma_buf_get_sizefcntl_mali_base_arch_mem_dma_buf_bind_mali_fence_init_from_mali_base_mem_add_to_mem_list_mali_base_mem_del_from_mem_list_mali_base_common_submit_limiter_job_done_event_mali_pp_open_mali_arch_pp_open_mali_base_common_context_reference_add_mali_pp_job_dup_mali_arch_pp_job_dup_mali_gp_job_run_postprocessing_mali_arch_pp_job_reset_mali_base_common_context_reference_remove_mali_pp_job_add_mem_to_free_list_mali_pp_job_get_render_attachment_address_mali_pp_job_get_wait_handle_mali_pp_job_add_to_sync_handle_mali_pp_job_run_postprocessing_mali_arch_pp_start_mali_osu_mutex_reentrant_create_mali_base_common_submit_job_limiter_init_mali_base_common_submit_job_limiter_deinit_mali_osu_mutex_reentrant_destroy_mali_base_arch_sys_wait_handle_wait_mali_base_common_cinstr_init_mali_base_common_cinstr_term_mali_osu_mutex_reentrant_lock_mali_osu_mutex_reentrant_unlock_mali_base_common_context_fence_is_locked_mali_osu_mutex_reentrant_is_locked_mali_base_common_context_add_global_pp_fence_mali_gp_job_reset_mali_gp_job_add_mem_to_free_list_mali_gp_job_get_wait_handle_mali_gp_job_set_auto_free_setting_mali_gp_job_get_auto_free_setting_mali_gp_job_add_to_sync_handle_mali_gp_job_free_cmdlists_mali_gp_job_run_postprocessing_job_mali_gp_job_start_mali_arch_gp_start_mali_gp_job_suspended_event_mali_arch_gp_mem_request_response_new_heap_mali_arch_gp_mem_request_response_abort_mali_arch_pp_job_add_piggyback_mali_osu_thread_set_idle_scheduling_policy_mali_osu_wait_for_thread_mali_osu_create_thread_mali_base_worker_quit_mali_fence_merge_point_mali_arch_profiling_control_set_mali_base_common_cinstr_qmanager_get_default_buffer_sizemem_cinstr_counters_mali_osu_timer_init_mali_base_common_cinstr_qmanager_init_mali_base_common_cinstr_kbsr_init_mali_base_common_cinstr_qmanager_destory_mali_osu_timer_termmem_cinstr_timer_mali_base_common_cinstr_kbsr_destory_mali_base_common_cinstr_set_mem_counter_mali_base_common_cinstr_timer_start_mali_osu_timer_reset_mali_base_common_cinstr_timer_stop_mali_osu_timer_stop_mali_base_common_cinstr_endpoint_connect_mali_base_common_cinstr_endpoint_send_mali_base_common_cinstr_endpoint_receivepoll_mali_base_common_cinstr_endpoint_initpipe_mali_base_common_cinstr_streamline_notify_startup_mali_base_common_cinstr_endpoint_destory_mali_base_common_cinstr_endpoint_disconnect__errno_locationacceptsocketsyscallrecvlisten_mali_arch_profiling_stream_fd_getmali_arch_submit_job_limiter_initmali_arch_submit_job_limiter_deinitmali_arch_submit_limiter_add_submit_eventmali_arch_submit_limiter_job_done_event_mali_base_common_submit_limiter_get_pending_big_gp_job_nummali_arch_submit_limiter_get_pending_big_gp_job_num__base_build_info_mali_arch_uk_fence_copy_fence_mali_uku_timeline_waitmali_uk_ctx_mali_uku_gp_start_job_mali_arch_gp_get_render_id_mali_arch_gp_event_handler_mali_uku_gp_suspend_response_mali_uku_pp_and_gp_start_job_mali_uku_pp_start_job_mali_uku_get_pp_number_of_cores_mali_uku_get_pp_core_version_mali_uku_timeline_get_latest_point_mali_arch_pp_event_handler_mali_arch_pp_get_render_id_mali_uku_pp_job_disable_wb_mali_uku_soft_job_start_mali_uku_soft_job_signal_mali_arch_soft_job_event_handler_mali_uku_profiling_add_event_mali_uku_profiling_stream_fd_get_mali_uku_profiling_control_set_mali_arch_profiling_memory_usage_get_mali_uku_profiling_memory_usage_get_mali_uku_profiling_report_sw_counters_mali_osu_annotate_setup_mali_osu_annotate_write_mali_osu_annotate_flush_mali_osu_annotate_lock_mali_osu_annotate_unlockmali_fb_limiterpthread_mutex_initpthread_cond_initpthread_mutex_destroypthread_cond_destroy_mali_uku_pending_submitpthread_mutex_lockpthread_cond_waitpthread_mutex_unlockpthread_cond_signalmali_sub_limiter_max_mali_convert_intrinsics_nonlinear_to_linear_lut_mali_convert_intrinsics_linear_to_nonlinear_lut_mali_convert_intrinsics_load_l8_mali_convert_intrinsics_store_l8_mali_convert_intrinsics_load_a8_mali_convert_intrinsics_load_i8_mali_convert_intrinsics_store_a8_i8_mali_convert_intrinsics_load_rgb565_mali_convert_intrinsics_store_rgb565_mali_convert_intrinsics_load_argb1555_mali_convert_intrinsics_store_argb1555_mali_convert_intrinsics_load_argb4444_mali_convert_intrinsics_store_argb4444_mali_convert_intrinsics_load_al88_mali_convert_intrinsics_store_al88_mali_convert_intrinsics_load_rgb888_mali_convert_intrinsics_store_rgb888_mali_convert_intrinsics_load_argb8888_mali_convert_intrinsics_store_argb8888_mali_convert_intrinsics_load_8x4_mali_convert_intrinsics_store_8x4_mali_convert_intrinsics_16x1_rgba_to_yuvtbl_mali_neon_transform_and_produce_clip_bits_mali_osu_matrix4x4_copy_mali_osu_lock_initpthread_mutexattr_initpthread_mutexattr_settypepthread_mutexattr_destroy_mali_osu_lock_auto_init_mali_osu_lock_timed_waitgettimeofdaypthread_cond_timedwait_mali_osu_lock_wait_mali_osu_lock_trywaitpthread_mutex_trylock_mali_osu_lock_signal_mali_osu_lock_term_mali_osu_lock_static_mali_osu_calloc_mali_osu_malloc_mali_osu_realloc_mali_osu_free_mali_osu_memcpy_mali_osu_memset_mali_osu_memcmp_mali_osu_load_config_strings_mali_osu_breakkill_mali_osu_abort_mali_osu_thread_key_set_datapthread_key_createpthread_setspecific_mali_osu_thread_key_get_datapthread_getspecific_mali_osu_thread_get_currentpthread_selfpthread_createpthread_joinsched_setschedulertimer_createtimer_delete_mali_osu_timer_starttimer_settime_mali_uku_open_mali_uku_close_mali_uku_wait_for_notification_mali_uku_post_notification_mali_uku_get_api_version_mali_uku_get_user_setting_mali_uku_get_user_settings_mali_uku_timeline_create_sync_fence_mali_uku_mem_allocate_mali_uku_mem_free_mali_uku_mem_bind_mali_uku_mem_unbind_mali_uku_mem_cow_mali_uku_mem_cow_modify_range_mali_uku_mem_resize_mali_uku_mem_mmap_mali_uku_mem_munmap_mali_uku_mem_write_safe_mali_uku_query_mmu_page_table_dump_size_mali_uku_dump_mmu_page_table_mali_uku_dma_buf_get_size_mali_uku_vsync_event_report_mali_uku_request_high_priorityarch_init_timerarch_cleanup_timer_mali_virtual_mem_area_create_mali_virtual_mem_area_destroy_mali_mmu_virtual_address_range_allocate_mali_mmu_virtual_address_range_free_mali_mmu_virtual_address_range_get_size_mali_virtual_mem_area_get__vprintf_chkfflushstdout_mali_base_arch_closearch_l2_counters_needs_resetarch_init_settings_mali_base_arch_open_mali_base_arch_mem_get_num_capability_sets_mali_base_arch_mem_dma_buf_map_mali_base_arch_mem_dma_buf_unmap_mali_base_arch_mem_write_safe_mali_base_arch_mem_write_safe_ptr_mali_base_arch_mmu_dump_size_get_mali_base_arch_mmu_dump_get_mali_base_arch_sys_wait_handle_timed_wait_mali_base_arch_sys_wait_handle_abandonfwritefeofferror__strcat_chk__strncat_chkdlsym__egl_platform_get_display_orientation__egl_platform_unmap_image_buffer__egl_platform_pixmap_get_mali_memory__egl_platform_destroy_dummy_windowwl_resource_get_user_data_Z35gbm_get_gbm_format_from_mali_format17mali_pixel_formatgbm_device_refgbm_device_unrefgbm_bo_refgbm_bo_unrefgbm_device_get_fdgbm_device_get_backend_namegbm_device_is_format_supportedgbm_device_destroygbm_bo_importgbm_bo_get_widthgbm_bo_get_heightgbm_bo_get_stridegbm_bo_get_formatgbm_bo_get_devicegbm_bo_get_handlegbm_bo_get_fdgbm_bo_writegbm_bo_set_user_datagbm_bo_get_user_datagbm_surface_creategbm_surface_needs_lock_front_buffergbm_surface_lock_front_buffergbm_surface_release_buffergbm_surface_has_free_buffersgbm_surface_destroywl_proxy_destroywl_proxy_marshal_constructorwl_proxy_set_queuewl_proxy_add_listenerwl_display_dispatch_queuewl_callback_interfacewl_proxy_marshal__egl_platform_wait_swap_complete_internal__egl_platform_initialize_wayland__egl_platform_terminate_waylandwl_display_disconnect__egl_platform_default_display_waylandwl_display_connect__egl_platform_display_valid_wayland__egl_platform_get_display_orientation_wayland__egl_platform_init_display_waylandwl_display_create_queuewl_event_queue_destroywl_registry_interface__egl_platform_filter_configs_wayland__egl_platform_flush_display_wayland__egl_platform_deinit_display_wayland__egl_platform_display_get_format_wayland__egl_platform_wait_native_wayland__egl_platform_begin_new_frame_wayland__egl_platform_create_surface_waylandwl_egl_window_insert_surface__egl_platform_destroy_surface_waylandwl_egl_window_remove_surface__egl_platform_resize_surface_wayland__egl_platform_get_pixmap_size_wayland__egl_platform_get_pixmap_colorspace_wayland__egl_platform_get_pixmap_alphaformat_wayland__egl_platform_get_pixmap_format_wayland__egl_platform_pixmap_valid_wayland__egl_platform_pixmap_support_gpu_access_wayland__egl_platform_pixmap_config_compatible_wayland__egl_platform_pixmap_surface_compatible_wayland__egl_platform_pixmap_copybuffers_compatible_wayland__egl_platform_pixmap_egl_image_compatible_wayland__egl_platform_map_pixmap_wayland__egl_platform_unmap_pixmap_wayland__egl_platform_unmap_image_buffer_wayland__egl_platform_swap_buffers_waylandwl_display_flush__egl_platform_pixmap_get_mali_memory_wayland__egl_platform_surface_buffer_invalid_wayland__egl_platform_copy_buffers_wayland__egl_platform_get_window_size_wayland__egl_platform_window_valid_wayland__egl_platform_window_compatible_wayland__egl_platform_supports_vsync_wayland__egl_platform_lock_surface_map_buffer_wayland__egl_platform_lock_surface_unmap_buffer_wayland__egl_platform_get_buffer_wayland__egl_platform_register_lock_item_wayland__egl_platform_unregister_lock_item_wayland__egl_platform_process_lock_item_wayland__egl_platform_release_lock_item_wayland__egl_platform_update_image_wayland__egl_platform_setup_soft_job_callback_wayland__egl_platform_soft_job_callback_wayland__egl_platform_surface_post_processing_needed_wayland__egl_platform_swap_interval_wayland__egl_platform_wait_swap_complete_wayland__egl_platform_start_rendering_wayland__egl_platform_stop_rendering_wayland__egl_platform_query_buffer_age_waylandwl_egl_window_resizewl_egl_window_createwl_egl_window_refwl_egl_window_unrefwl_egl_window_destroywl_egl_window_get_attached_size_egl_bind_wayland_display_egl_unbind_wayland_display_egl_query_wayland_buffer_wlwl_resource_destroywl_resource_createwl_resource_set_implementationwl_resource_set_user_datamali_buffer_implementationwl_resource_post_errorwl_resource_post_eventwl_global_createwl_global_destroy_gles_gb_vs_range_resize_gles_gb_plbu_arrays_semaphore_begin_gles_gb_plbu_arrays_semaphore_end_gles_gb_extract_viewport_dimensions_gles_gb_setup_plbu_scissor_gles_gb_plbu_setup_points_lines_gles_gb_plbu_setup_draw_gles_gb_plbu_setup_gles_gb_setup_input_streamsgles_gb_cache_allocgles_gb_cache_enable_oom_invalidationgles_gb_cache_free_gles_gb_release_range_cache_entry_gles_gb_allocate_range_cache_entry_gles_gb_range_invalidate_gles_gb_bb_cache_invalidate_rangesgles_gb_cache_get_gles_gb_scan_ranges_and_update_cache_entry_gles_scan_indices_range_with_cpu_spreadgles_gb_cache_insert_gles_gb_range_compare_gles_gb_calculate_vs_viewport_transform_gles_gb_try_reject_drawcall_gles_gb_vs_setup_gles_gb_draw_nonindexed_split_gles_gb_vs_arrays_semaphore_begin_gles_gb_vs_arrays_semaphore_endgles_gb_cache_invalidate_by_compare_gles_gb_insert_ranges_main_gles_bb_prepare_inversegles_bb_frustum_produce_clip_bits_gles_clip_bounding_box_gles_gb_merge_active_bb_nodes_gles_traverse_for_bounding_boxparse_cpupretrans_patternsgles_create_bounding_box_from_indices_gles_scan_minmax_and_produce_dirty_bits_gles_gb_create_bounding_box_from_children_gles_gb_sort_and_merge_sparse_bb_nodes_gles_gb_construct_bounding_box_gles_gb_bb_cache_get_gles_gb_bb_compare_gles_gb_release_bb_tree_gles_fast_scan_shorts_no_distance_gles_fast_scan_shorts_gles_scan_ranges_from_dirty_bits_gles_gb_range_is_invalid_gles_gb_bb_cache_is_invalid_gles_gb_allocate_bb_cache_entry_gles_gb_release_bb_cache_entry_gles_gb_setup_vs_constant_registers__memset_chk_gles_gb_setup_output_streams_gles_sg_extract_fragment_state_gles_sg_get_vertex_uniform_array_size_gles_sg_get_fragment_uniform_array_size_gles_sg_make_attribute_remap_table_gles_sg_extract_vertex_uniforms_gles_sg_update_current_attribute_values_gles_sg_extract_fragment_uniforms_gles_sg_adjust_matrix_for_prerotate_essl_mempool_tracker_init_essl_mempool_init_essl_new_compiler_options_essl_output_buffer_init_essl_mempool_destroy_essl_error_get_n_errors_essl_error_out_of_memory_essl_error_essl_set_compiler_options_for_hw_rev_essl_new_target_descriptor_essl_new_frontend_essl_new_compiler_for_target_essl_set_compiler_option_essl_set_compiler_option_value_essl_run_frontend_essl_ast_to_lir_essl_middle_transform_essl_set_source_string_report_offset_essl_error_set_source_string_report_offset_essl_error_get_log_size_essl_error_get_log_essl_get_n_errors_essl_get_n_warnings_essl_error_get_n_warnings_essl_output_buffer_get_size_essl_output_buffer_get_raw_pointer_essl_mempool_allocsnprintf_essl_error_init_essl_error_get_position_essl_error_set_position_essl_list_new_essl_list_insert_back_essl_warning_essl_note_essl_error_node_essl_warning_node_essl_note_node_essl_mali_core_name_essl_list_insert_front_essl_list_remove_essl_list_length_essl_list_reverse_essl_list_find_essl_list_sort_essl_mempool_clear_essl_mempool_fail_alloc_handler_essl_mempool_get_tracker_essl_validate_hw_rev_essl_mali200_new_target_descriptor_essl_maligp2_new_target_descriptor_essl_output_buffer_replace_bits_essl_output_buffer_retrieve_bits_essl_output_buffer_append_bits_essl_output_buffer_append_int8_essl_output_buffer_append_int16_essl_output_buffer_append_int32_essl_output_buffer_get_word_position_essl_output_buffer_get_bit_position_essl_output_buffer_get_byte_position_essl_buffer_native_to_le_byteswap_essl_output_buffer_native_to_le_byteswap_essl_ptrdict_insert_essl_ptrdict_lookup_essl_insert_global_variable_initializers_essl_new_variable_reference_expression_essl_ensure_compatible_node_essl_new_assign_expression_essl_node_append_child_essl_parse_translation_unit_essl_typecheck_essl_symbol_table_iter_init_essl_symbol_table_next_essl_get_symbol_declaration_id_in_scope_essl_symbol_table_lookup_essl_make_callgraph_essl_ptrdict_init_essl_ptrset_init_essl_is_type_control_dependent_essl_ptrset_insert_essl_inline_global_variables_essl_create_language_descriptor_essl_typestorage_init_essl_scanner_init_essl_preprocessor_init_essl_parser_init_essl_typecheck_init_essl_dict_init_essl_set_language_version_essl_cstring_to_string_nocopy_essl_string_cmp_essl_string_to_cstring_essl_get_language_version_essl_load_extension_macros_essl_preprocessor_extension_macro_add_essl_get_extension_behavior_essl_set_extension_essl_dict_insert_essl_dict_remove_essl_set_pragma_essl_make_basic_blocks_init_essl_optimise_loop_entry_essl_eliminate_complex_returns_essl_optimise_inline_functions_init_essl_eliminate_complex_ops_essl_make_basic_blocks_essl_compute_dominance_information_essl_ssa_transform_essl_optimise_inline_functions_essl_ptrset_iter_init_essl_ptrset_next_essl_ptrset_has_essl_init_qualifier_set_essl_cstring_to_string_essl_new_variable_symbol_essl_symbol_scope_insert_essl_new_single_declarator_essl_new_variable_declaration_essl_node_prepend_childmemmove_essl_node_set_n_children_essl_common_dominator_essl_basic_block_setup_postorder_sequence_essl_reverse_postorder_visit_essl_postorder_visit_essl_compute_dominance_frontier_essl_run_lir_function_pass_essl_run_lir_tu_pass_essl_expand_builtin_functions_essl_optimise_constant_input_calculations_essl_rewrite_sampler_accesses_essl_optimise_constant_fold_nodes_and_blocks_essl_optimise_basic_block_sequences_essl_find_blocks_for_operations_essl_loop_unroll_essl_optimise_conditional_selects_essl_optimise_basic_block_joins_essl_forward_stores_to_loads_and_elide_stores_essl_optimise_vector_ops_essl_control_dependencies_calc_essl_identify_hbbr_patterns_essl_get_type_size_essl_new_variable_symbol_with_default_qualifiers_essl_ptrset_clear_essl_ptrset_remove_essl_ptrdict_remove_essl_rewrite_node_to_transfer_essl_ptrdict_clear_essl_ptrdict_iter_init_essl_ptrdict_next_essl_symbol_for_node_essl_correct_output_sequence_list_essl_calc_op_weight_essl_ptrdict_has_key_essl_constant_fold_single_node_essl_constant_fold_init_essl_optimise_constant_fold_nodes_essl_node_is_texture_operation_essl_new_unary_expression_essl_create_scalar_swizzle_essl_type_is_or_has_sampler_essl_get_type_with_given_vec_size_essl_new_constant_expression_essl_get_type_with_size_essl_new_binary_expression_essl_get_scalar_size_for_type_essl_new_builtin_function_call_expression_essl_new_ternary_expression_essl_clone_type_essl_new_type_convert_expression_essl_create_undef_swizzle_essl_clone_node_essl_combine_swizzles_essl_new_vector_combine_expression_essl_create_identity_swizzle_essl_type_scalar_part_equal_essl_swizzle_patch_dontcares_essl_is_node_all_value_essl_remove_control_dependent_op_node_essl_clone_control_dependent_op_essl_add_succs_to_list_essl_ptrset_size_essl_maligp2_get_type_size_essl_collect_node_successors_essl_new_function_symbol_essl_new_basic_block_essl_new_load_expression_essl_new_store_expression_essl_loop_build_tree_essl_is_identity_swizzle_sized_essl_new_builtin_constructor_expression_essl_backend_constant_fold_essl_backend_constant_fold_sized_essl_backend_float_to_scalar_essl_backend_int_to_scalar_essl_backend_bool_to_scalar_essl_backend_scalar_to_float_essl_backend_scalar_to_int_essl_backend_scalar_to_bool_essl_backend_convert_scalar_essl_mali200_driver_essl_mali200_get_type_alignment_essl_mali200_get_type_size_essl_mali200_get_type_member_offset_essl_mali200_get_address_multiplier_essl_mali200_get_array_stride_essl_mali200_insert_entry_point_essl_mali200_op_weight_essl_mali200_emit_translation_unit_essl_mali200_init_driver_context_essl_unique_name_init_essl_mali200_relocations_init_essl_mali200_preschedule_essl_rewrite_sampler_external_accesses_essl_remove_dead_code_essl_find_blocks_for_operations_func_essl_calculate_extra_info_essl_mali200_schedule_function_essl_mali200_allocate_registers_essl_mali200_relocations_resolve_essl_mali200_remove_empty_instructions_essl_mali200_insert_pad_instruction_essl_serialize_translation_unit_essl_mali200_emit_function_essl_create_extra_info_essl_new_type_essl_scheduler_schedule_extra_operation_essl_new_mali200_instruction_word_essl_mali200_find_free_slots_essl_mali200_allocate_slots_essl_scheduler_postpone_operation_essl_mali200_write_instructions_essl_new_depend_expression_essl_create_swizzle_from_combiner_essl_scheduler_forget_unscheduled_use_essl_mali200_output_modifier_is_identity_essl_mali200_can_handle_redirection_essl_mali200_has_output_modifier_slot_essl_mali200_has_output_modifier_and_truncsat_slot_essl_mali200_has_output_modifier_and_swizzle_slot_essl_scheduler_is_only_use_of_source_essl_mali200_is_coalescing_candidate_essl_is_node_comparison_essl_scheduler_schedule_operation_essl_scheduler_init_essl_scheduler_set_data_dependency_delay_callback_essl_scheduler_more_blocks_essl_scheduler_begin_block_essl_scheduler_block_complete_essl_scheduler_more_operations_essl_scheduler_finish_block_essl_new_mali200_instruction_essl_mali200_opcode_is_symmetric_essl_mali200_opcode_has_side_effects_essl_mali200_create_slot_instruction_essl_mali200_fit_constants_essl_mali200_output_modifiers_can_be_coalesced_essl_is_identity_swizzle_essl_mali200_add_address_offset_relocation_essl_create_identity_swizzle_from_swizzle_essl_address_symbol_lists_equal_essl_mali200_fit_float_constants_essl_scheduler_get_earliest_use_essl_scheduler_get_latest_use_essl_create_reservation_context_essl_liveness_mark_fixed_ranges_essl_mali200_allocate_reg_essl_reservation_allocate_reg_essl_reservation_find_available_reg_essl_mali200_calculate_live_ranges_essl_eliminate_phi_nodes_essl_sort_live_ranges_by_graph_coloring_essl_mali200_find_word_for_spill_essl_mali200_split_word_essl_mali200_create_spill_ranges_essl_mali200_insert_spills_essl_mali200_integrate_allocations_essl_mali200_phielim_insert_move_essl_mali200_spill_cost_essl_graph_coloring_default_is_definitely_colorable_essl_create_identity_swizzle_from_mask_essl_instruction_word_at_cycle_essl_liveness_new_delimiter_essl_liveness_new_live_range_essl_liveness_correct_live_range_essl_mali200_insert_word_before_essl_mali200_insert_word_after_essl_liveness_insert_cycle_essl_get_specified_samplers_num_essl_new_function_call_expression_essl_get_unqualified_type_essl_new_flow_control_statement_essl_new_compound_statement_essl_symbol_table_begin_scope_essl_new_function_declaration_essl_new_array_of_type_essl_is_optimized_sampler_symbol_essl_allocate_addresses_for_optimized_samplers_essl_allocate_addresses_for_set_essl_clz32_essl_mali200_add_symbol_address_relocation_essl_mali200_same_address_essl_get_type_with_default_size_for_target_essl_split_basic_block_essl_new_phi_expression_essl_maligp2_get_type_alignment_essl_maligp2_get_address_multiplier_essl_maligp2_get_array_stride_essl_maligp2_get_type_member_offset_essl_maligp2_driver_essl_maligp2_insert_entry_point_essl_maligp2_op_weight_scheduler_essl_maligp2_op_weight_realistic_vertex_shadergen_select_pieces_vertex_shadergen_glue_pieces_piecegen_get_piece_piecegen_get_indexed_piece_piecegen_get_serialized_data_essl_shadergen_mali200_new_target_descriptor_fragment_shadergen_internal_generate_shader_essl_shadergen_mali200_driver_essl_dict_lookup_essl_dict_has_key_essl_dict_clear_essl_dict_size_essl_dict_iter_init_essl_dict_next_essl_string_cstring_count_cmp_essl_ptrdict_size_essl_ptrdict_set_value_essl_ptrdict_get_value_essl_ptrdict_get_key_essl_ptrdict_next_entry_essl_ptrdict_reverse_iter_init_essl_ptrdict_reverse_next_essl_ptrset_reverse_iter_init_essl_ptrset_reverse_next_essl_ptrset_union_essl_ptrset_difference_essl_ptrset_is_subset_essl_ptrset_equal_essl_symbol_scope_init_essl_symbol_table_lookup_current_scope_essl_symbol_table_end_scope_essl_new_symbol_essl_new_builtin_function_symbol_essl_new_builtin_function_name_symbol_essl_new_type_symbol_essl_new_basic_block_with_n_successors_essl_new_node_essl_node_get_n_children_essl_node_get_child_essl_node_get_child_address_essl_node_set_child_essl_new_translation_unit_essl_new_struct_constructor_expression_essl_new_dont_care_expression_essl_new_if_statement_essl_new_while_statement_essl_new_do_statement_essl_new_for_statement_essl_new_precision_declaration_essl_set_node_position_essl_new_transfer_expression_essl_is_sampler_type_essl_node_is_constant_essl_create_undef_combiner_essl_create_on_combiner_essl_mask_from_swizzle_output_essl_mask_from_swizzle_input_essl_create_vector_combine_for_nodes_essl_invert_swizzle_essl_new_basic_type_essl_get_type_with_size_and_signedness_essl_get_type_essl_get_type_vec_size_essl_type_has_vec_size_essl_get_matrix_n_columns_essl_get_matrix_n_rows_essl_get_type_member_offset_essl_type_equal_essl_type_with_scalar_size_equal_essl_get_type_with_given_size_essl_get_single_matrix_column_type_essl_new_matrix_of_type_essl_new_unresolved_array_of_type_essl_get_nonderived_basic_type_essl_size_of_scalar_essl_unique_name_get_essl_unique_name_set_essl_unique_name_get_or_create_essl_scanner_get_source_offset_essl_scanner_get_token_essl_token_to_str_essl_preprocessor_get_token_essl_string_to_float_essl_convert_string_to_double_essl_preprocessor_get_source_offset_essl_string_to_integer_essl_parse_expression_essl_string_buffer_put_formatted_essl_typecheck_single_node_essl_get_type_name_essl_new_string_buffer_essl_string_buffer_put_string_essl_string_buffer_reset_essl_string_buffer_to_string_essl_calculate_precision_essl_precision_init_context_essl_preprocessor_extension_macro_remove_essl_precision_enter_scope_essl_precision_leave_scope_essl_precision_visit_single_node_essl_middle_split_lvalue_essl_is_var_ref_control_dependent_essl_is_var_ref_load_essl_general_dict_insert_essl_general_dict_lookup_essl_general_dict_inittransfer_liveness_for_expressiontanasinacosexpatan2_essl_scheduler_is_operation_partially_scheduled_estimate_essl_scheduler_next_operation_essl_scheduler_add_scheduled_use_essl_scheduler_set_control_dependency_delay_callback_essl_scheduler_set_phi_source_dependency_delay_callback_essl_interference_graph_has_edge_essl_allocate_addresses_essl_liveness_mark_use_essl_liveness_mark_def_essl_liveness_find_preceding_liveness_essl_liveness_create_context_essl_liveness_insert_range_essl_liveness_remove_range_essl_liveness_calculate_live_ranges_essl_liveness_merge_live_ranges_essl_liveness_sort_live_ranges_essl_liveness_fix_dead_definitions_essl_priqueue_init_essl_priqueue_insert_essl_priqueue_n_elements_essl_priqueue_remove_first_essl_interference_graph_iter_init_essl_interference_graph_next_essl_interference_graph_get_edges_essl_interference_graph_init_essl_interference_graph_register_edge_essl_interference_graph_register_wildcard_edge_essl_new_maligp2_instruction_word_essl_maligp2_allocate_slots_essl_maligp2_write_instructions_essl_maligp2_schedule_function_essl_maligp2_allocate_move_essl_maligp2_reserve_move_essl_maligp2_demote_misc_move_reservation_essl_maligp2_add_address_offset_relocation_essl_new_maligp2_instruction_essl_maligp2_get_mul_slot_opcode_essl_maligp2_get_add_slot_opcode_essl_maligp2_add_slot_move_needs_two_inputs_essl_maligp2_create_slot_instruction_essl_maligp2_inseparable_essl_maligp2_inseparable_from_successor_essl_maligp2_inseparable_from_predecessor_essl_maligp2_emit_translation_unit_essl_maligp2_relocations_init_essl_maligp2_simplify_index_op_essl_maligp2_preschedule_essl_maligp2_allocate_registers_essl_maligp2_fixup_constants_essl_maligp2_calc_constant_register_interference_essl_maligp2_relocations_resolve_essl_maligp2_integrate_bypass_allocations_essl_maligp2_emit_function_essl_maligp2_is_fixedpoint_range_essl_maligp2_rollback_bypass_network_essl_maligp2_allocate_bypass_networkextract_store_list_for_blockextract_store_list_for_functionextract_store_listextract_load_listbuild_interference_graph_essl_maligp2_get_normal_relocations_essl_maligp2_insert_word_after_essl_maligp2_insert_word_before_essl_maligp2_add_constant_relocation_essl_maligp2_calculate_live_ranges_essl_maligp2_virtual_reg_init_essl_maligp2_create_loadstore_context_essl_maligp2_allocate_work_registers_essl_maligp2_constant_register_spilling_essl_maligp2_produce_conflict_graph_essl_maligp2_allocate_register_loadstores_shadergen_maligp2_merge_instructions_shadergen_maligp2_correct_flow_address_essl_general_dict_has_key_essl_general_dict_remove_essl_general_dict_clear_essl_general_dict_size_essl_priqueue_remove_essl_priqueue_peek_first_essl_priqueue_has_element_essl_priqueue_get_priority_essl_string_buffer_put_str_essl_string_buffer_put_int_essl_string_buffer_put_unsigned_int_essl_string_buffer_put_floatstrstr_essl_string_buffers_to_string_essl_maligp2_virtual_reg_get_allocation_essl_maligp2_virtual_reg_coalesce_essl_maligp2_virtual_reg_get_essl_maligp2_virtual_reg_allocate_essl_maligp2_virtual_reg_assign_essl_maligp2_virtual_reg_allocated_essl_maligp2_virtual_reg_set_conflict_graph_mali_rcp_table_mali_sin_table__mali_float_matrix4x4_multiply__mali_float_matrix4x4_swap_rows__mali_float_matrix4x4_invert_gaussfabsf__mali_float_matrix4x4_invert_partitioning__mali_float_matrix4x4_transposelibpthread.so.0libdrm.so.2libwayland-client.so.0libwayland-server.so.0libffi.so.6libcrypto.so.1.0.0libm.so.6libdl.so.2librt.so.1raiselibc.so.6__fxstatld-linux-armhf.so.3_edata__bss_start__bss_start____bss_end____end__GLIBC_2.4libffi.solibcrypto.solibmali.so.1