func randInt(max int) int {
	i, err := crypto.Int(crypto.Reader, big.NewInt(int64(max)))
	if err == nil {
		return int(i.Int64())
	}
	return rand.Intn(max)
}
func randInt(max int) int {
	i, err := crypto.Int(crypto.Reader, big.NewInt(int64(max)))
	if err == nil {
		return int(i.Int64())
	}
	return rand.Intn(max)
}
//best-effort attempt to get an int from crypto/rand. if
//an error is returned, it will fall back to math/rand.