if ( n < 0 ) return operator+=(-n);  while ( n ) { normalize_backward(); difference_type one_hop = NS_MIN(n, size_backward()); NS_ASSERTION(one_hop>0, "Infinite loop: can't advance (backward) a readable iterator beyond the end of a string"); mPosition -= one_hop; n -= one_hop; }  return *this;
return advance(-n);
      operator-=( difference_type n )        {          if ( n < 0 )            return operator+=(-n);          while ( n )            {              normalize_backward();              difference_type one_hop = NS_MIN(n, size_backward());              NS_ASSERTION(one_hop>0, "Infinite loop: can't advance (backward) a readable iterator beyond the end of a string");              mPosition -= one_hop;              n -= one_hop;            }          return *this;        }