and and and and and and and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand and and and andand andlol