static int findFactorByLimit(final long base)
  {
	final long value = Math.abs(base);
	int from = 0;
	int to = LIMITS.length - 1;
	if (value <= LIMITS[to])
	{
	  return to;
	}
	if (value > LIMITS[0])
	{
	  return 0;
	}
	do
	{
	  final int mid = (from + to) >> 1;
	  if (LIMITS[mid] >= value)
	  {
		if (LIMITS[mid + 1] < value)
		{
		  return mid;
		}
		else
		{
		  from = mid;
		}
	  }
	  else
	  {
		if (to == mid)
		{
		  from = mid;
		}
		else
		{
		  to = mid;
		}
	  }
	}
	while (from != to);
	throw new IllegalStateException("Could not find factor by LIMIT for " + value);
  }