hgfhgfhfgh

taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught

Comments

Popular posts from this blog

jhhjjhjhgjgh

fhgfjhgjhg