package main

// import (
// 	"encoding/binary"
// 	"fmt"
// 	"unsafe"
// )

// func main() {
// 	const x int32 = 2017403647
// 	const y int32 = 1010101010
// 	const z int32 = 2020202020

// 	// bytearr := valuesToByteArrayTest(x, y, z, 1)
// 	// fmt.Println("TEST: ", bytearr)

// 	// slice := binary.LittleEndian.Uint32(bytearr[0:4])
// 	// fmt.Println("SLICE:", slice)

// 	// slice2 := binary.LittleEndian.Uint32(bytearr[4:8])
// 	// fmt.Println("SLICE2:", slice2)

// 	bs := make([]byte, 4)
// 	binary.LittleEndian.PutUint32(bs, uint32(y))
// 	fmt.Println(bs)

// 	// buf := make([]byte, 4)
// 	// arr[0] = byte(x >> 8)

// 	// buf[0], buf[1], buf[2] = uint8(7676767>>16), uint8(id>>8), uint8(id)

// 	bytearr := valuesToByteArray3(x, y, z, 1)
// 	fmt.Println("TEST: ", bytearr)

// 	slice := binary.LittleEndian.Uint32(bytearr[0:4])
// 	fmt.Println("SLICE:", slice)

// 	slice2 := binary.LittleEndian.Uint32(bytearr[4:8])
// 	fmt.Println("SLICE2:", slice2)

// }

// func valuesToByteArrayOld(x int32, y int32, z int32, p int8) []byte {
// 	arr := make([]byte, 13)
// 	for i := 0; i < 12; i++ {
// 		var test unsafe.Pointer
// 		var test2 unsafe.Pointer
// 		var test3 unsafe.Pointer
// 		if i < 4 {
// 			test = unsafe.Pointer(&x)
// 		} else if i < 8 {
// 			test2 = unsafe.Pointer(&y)
// 		} else if i < 12 {
// 			test3 = unsafe.Pointer(&z)
// 		}
// 		byt := *(*uint8)(unsafe.Pointer(uintptr(test) + uintptr(i)))
// 		arr[i] = byt
// 	}
// 	arr[12] = byte(p)
// 	return arr
// }

// func valuesToByteArray1(x int32, y int32, z int32, p int8) []byte {
// 	arr := make([]byte, 13)
// 	arr[0] = byte(x)
// 	arr[1] = byte(x >> 8)
// 	arr[2] = byte(x >> 16)
// 	arr[3] = byte(x >> 24)
// 	arr[4] = byte(y)
// 	arr[5] = byte(y >> 8)
// 	arr[6] = byte(y >> 16)
// 	arr[7] = byte(y >> 24)
// 	arr[8] = byte(z)
// 	arr[9] = byte(z >> 8)
// 	arr[10] = byte(z >> 16)
// 	arr[11] = byte(z >> 24)
// 	arr[12] = byte(p)
// 	return arr
// }

// func valuesToByteArray2(x int32, y int32, z int32, p int8) []byte {
// 	buf := make([]byte, 13)
// 	binary.LittleEndian.PutUint32(buf[0:], uint32(x))
// 	binary.LittleEndian.PutUint32(buf[4:], uint32(y))
// 	binary.LittleEndian.PutUint32(buf[8:], uint32(z))
// 	buf[12] = byte(p)
// 	return buf
// }

// func valuesToByteArray3(x int32, y int32, z int32, p int8) []byte {
// 	arr := make([]byte, 13)
// 	for i := 0; i < 12; i++ {
// 		var test unsafe.Pointer
// 		if i < 4 {
// 			test = unsafe.Pointer(&x)
// 		} else if i < 8 {
// 			test = unsafe.Pointer(&y)
// 		} else if i < 12 {
// 			test = unsafe.Pointer(&z)
// 		}
// 		byt := *(*uint8)(unsafe.Pointer(uintptr(test) + uintptr(i)))
// 		arr[i] = byt
// 	}
// 	arr[12] = byte(p)
// 	return arr
// }
