code: func (q *QRCode) ToSmallString(inverseColor bool) string {
  	bits := q.Bitmap()
  	var buf bytes.Buffer
  	// if there is an odd number of rows, the last one needs special treatment
  	for y := 0; y < len(bits)-1; y += 2 {
  		for x := range bits[y] {
  			if bits[y][x] == bits[y+1][x] {
  				if bits[y][x] != inverseColor {
  					buf.WriteString(" ")
  				} else {
  					buf.WriteString("█")
  				}
  			} else {
  				if bits[y][x] != inverseColor {
  					buf.WriteString("▄")
  				} else {
  					buf.WriteString("▀")
  				}
  			}
  		}
  		buf.WriteString("\n")
  	}
  	// special treatment for the last row if odd
  	if len(bits)%2 == 1 {
  		y := len(bits) - 1
  		for x := range bits[y] {
  			if bits[y][x] != inverseColor {
  				buf.WriteString(" ")
  			} else {
  				buf.WriteString("▀")
  			}
  		}
  		buf.WriteString("\n")
  	}
  	return buf.String()
  }
docs: // ToSmallString produces a multi-line string that forms a QR-code image, a
  // factor two smaller in x and y then ToString.