+++-++++-++++-++++++++++++-------++--++--++--++--++--++--++--++--++++++++-------------++++------++------+---