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