### Question:
HashTreeUtil { static List<Bytes32> separateIntoChunks(Bytes... sszValues) { Bytes concatenatedBytes = Bytes.concatenate(sszValues); List<Bytes32> chunkifiedBytes = new ArrayList<>(); for (int chunk = 0; chunk < concatenatedBytes.size(); chunk += BYTES_PER_CHUNK) { chunkifiedBytes.add( Bytes32.rightPad( concatenatedBytes.slice(chunk, Math.min(32, concatenatedBytes.size() - chunk)))); } return chunkifiedBytes; }  static Bytes32 hash_tree_root(SSZTypes sszType, Bytes... bytes); @SuppressWarnings({"rawtypes", "unchecked"}) static Bytes32 hash_tree_root(SSZTypes sszType, SSZImmutableCollection bytes); static Bytes32 hash_tree_root_list_ul(SSZList<Bytes> bytes); static Bytes32 hash_tree_root_vector_uint64(SSZVector<UInt64> vector); @SuppressWarnings({"rawtypes", "unchecked"}) static Bytes32 hash_tree_root(SSZTypes sszType, SSZList bytes); static Bytes32 merkleize1(List<Bytes32> sszChunks, long limit); static Bytes32 merkleize(List<Bytes32> chunks, long limit); static Bytes32 merkleize(List<Bytes32> sszChunks); static Bytes32 hash_tree_root_bitlist(Bitlist bitlist); static Bytes32 hash_tree_root_bitvector(Bitvector bitvector); static Bytes32 hash_tree_root_list_bytes(SSZList<Bytes32> bytes); static final int BYTES_PER_CHUNK; }### Answer:
@Test void testPack() { final Bytes input = Bytes.fromHexString( "0xA99A76ED7796F7BE22D5B7E85DEEB7C5677E88E511E0B337618F8C4EB61349B4BF2D153F649F7B53359FE8B94A38E44C"); final List<Bytes32> result = Arrays.asList( Bytes32.fromHexString( "0xA99A76ED7796F7BE22D5B7E85DEEB7C5677E88E511E0B337618F8C4EB61349B4"), Bytes32.fromHexString( "0xBF2D153F649F7B53359FE8B94A38E44C00000000000000000000000000000000")); assertEquals(result, HashTreeUtil.separateIntoChunks(input)); }