// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/IEXByteEnum.java
// public interface IEXByteEnum {
// 
//     byte getCode();
// 
// }
// 
// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/field/IEXPrice.java
// public class IEXPrice implements Comparable<IEXPrice>, Serializable {
// 
//     private static final int SCALE = 4;
// 
//     private final long number;
// 
//     public IEXPrice(final long number) {
//         this.number = number;
//     }
// 
//     public long getNumber() {
//         return number;
//     }
// 
//     public BigDecimal toBigDecimal() {
//         return BigDecimal.valueOf(number)
//                 .scaleByPowerOfTen(-SCALE);
//     }
// 
//     @Override
//     public int compareTo(final IEXPrice iexPrice) {
//         return compare(this.getNumber(), iexPrice.getNumber());
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         IEXPrice iexPrice = (IEXPrice) o;
//         return number == iexPrice.number;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(number);
//     }
// 
//     @Override
//     public String toString() {
//         return toBigDecimal()
//                 .toString();
//     }
// }


import pl.zankowski.iextrading4j.hist.api.IEXByteEnum;
import pl.zankowski.iextrading4j.hist.api.field.IEXPrice;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
    }

    public static byte[] convert(final String value, final int capacity) {
        final ByteBuffer buffer = ByteBuffer.allocate(capacity);
        buffer.order(ByteOrder.LITTLE_ENDIAN);
        buffer.put(value.getBytes());
        return buffer.array();
    }

    public static byte[] convertUnsignedShort(final int value) {
        final ByteBuffer buffer = ByteBuffer.allocate(2);
        buffer.order(ByteOrder.LITTLE_ENDIAN);
        buffer.putShort((short) value);
        return buffer.array();
    }

    public static byte[] prepareBytes(final int capacity, final Object... objects) {
        final ByteBuffer byteBuffer = ByteBuffer.allocate(capacity);
        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
        for (final Object object : objects) {
            if (object instanceof Long) {
                byteBuffer.put(convert((Long) object));
            } else if (object instanceof Short) {
                byteBuffer.put(convert((Short) object));
            } else if (object instanceof Integer) {
                byteBuffer.put(convert((Integer) object));
            } else if (object instanceof String) {
                byteBuffer.put(convert((String) object));
            } else if (object instanceof IEXByteEnum) {
                byteBuffer.put(((IEXByteEnum) object).getCode());
// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/IEXByteEnum.java
// public interface IEXByteEnum {
// 
//     byte getCode();
// 
// }
// 
// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/field/IEXPrice.java
// public class IEXPrice implements Comparable<IEXPrice>, Serializable {
// 
//     private static final int SCALE = 4;
// 
//     private final long number;
// 
//     public IEXPrice(final long number) {
//         this.number = number;
//     }
// 
//     public long getNumber() {
//         return number;
//     }
// 
//     public BigDecimal toBigDecimal() {
//         return BigDecimal.valueOf(number)
//                 .scaleByPowerOfTen(-SCALE);
//     }
// 
//     @Override
//     public int compareTo(final IEXPrice iexPrice) {
//         return compare(this.getNumber(), iexPrice.getNumber());
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         IEXPrice iexPrice = (IEXPrice) o;
//         return number == iexPrice.number;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(number);
//     }
// 
//     @Override
//     public String toString() {
//         return toBigDecimal()
//                 .toString();
//     }
// }


// Path: iextrading4j-hist-api/src/test/java/pl/zankowski/iextrading4j/hist/api/util/IEXByteTestUtil.java
import pl.zankowski.iextrading4j.hist.api.IEXByteEnum;
import pl.zankowski.iextrading4j.hist.api.field.IEXPrice;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

    }

    public static byte[] convert(final String value, final int capacity) {
        final ByteBuffer buffer = ByteBuffer.allocate(capacity);
        buffer.order(ByteOrder.LITTLE_ENDIAN);
        buffer.put(value.getBytes());
        return buffer.array();
    }

    public static byte[] convertUnsignedShort(final int value) {
        final ByteBuffer buffer = ByteBuffer.allocate(2);
        buffer.order(ByteOrder.LITTLE_ENDIAN);
        buffer.putShort((short) value);
        return buffer.array();
    }

    public static byte[] prepareBytes(final int capacity, final Object... objects) {
        final ByteBuffer byteBuffer = ByteBuffer.allocate(capacity);
        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
        for (final Object object : objects) {
            if (object instanceof Long) {
                byteBuffer.put(convert((Long) object));
            } else if (object instanceof Short) {
                byteBuffer.put(convert((Short) object));
            } else if (object instanceof Integer) {
                byteBuffer.put(convert((Integer) object));
            } else if (object instanceof String) {
                byteBuffer.put(convert((String) object));
            } else if (object instanceof IEXByteEnum) {
                byteBuffer.put(((IEXByteEnum) object).getCode());
            } else if (object instanceof IEXPrice) {