blob: ca70dafa2b740fef8e48b727e8264499e46655b1 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.datasketches.theta;
import org.apache.datasketches.common.SketchesArgumentException;
/**
* Used as part of Theta compression.
*/
public class BitPacking {
/**
* The bit packing operation
* @param value the value to pack
* @param bits number of bits to pack
* @param buffer the output byte array buffer
* @param bufOffset the byte offset in the buffer
* @param bitOffset the bit offset
*/
public static void packBits(final long value, int bits, final byte[] buffer, int bufOffset, final int bitOffset) {
if (bitOffset > 0) {
final int chunkBits = 8 - bitOffset;
final int mask = (1 << chunkBits) - 1;
if (bits < chunkBits) {
buffer[bufOffset] |= (value << (chunkBits - bits)) & mask;
return;
}
buffer[bufOffset++] |= (value >>> (bits - chunkBits)) & mask;
bits -= chunkBits;
}
while (bits >= 8) {
buffer[bufOffset++] = (byte)(value >>> (bits - 8));
bits -= 8;
}
if (bits > 0) {
buffer[bufOffset] = (byte)(value << (8 - bits));
}
}
/**
* The unpacking operation
* @param value the output array
* @param index index of the value array
* @param bits the number of bits to unpack
* @param buffer the input packed buffer
* @param bufOffset the buffer offset
* @param bitOffset the bit offset
*/
public static void unpackBits(final long[] value, final int index, int bits, final byte[] buffer,
int bufOffset,final int bitOffset) {
final int availBits = 8 - bitOffset;
final int chunkBits = availBits <= bits ? availBits : bits;
final int mask = (1 << chunkBits) - 1;
value[index] = (buffer[bufOffset] >>> (availBits - chunkBits)) & mask;
bufOffset += availBits == chunkBits ? 1 : 0;
bits -= chunkBits;
while (bits >= 8) {
value[index] <<= 8;
value[index] |= (Byte.toUnsignedLong(buffer[bufOffset++]));
bits -= 8;
}
if (bits > 0) {
value[index] <<= bits;
value[index] |= Byte.toUnsignedLong(buffer[bufOffset]) >>> (8 - bits);
}
}
// pack given number of bits from a block of 8 64-bit values into bytes
// we don't need 0 and 64 bits
// we assume that higher bits (which we are not packing) are zeros
// this assumption allows to avoid masking operations
static void packBitsBlock8(final long[] values, final int i, final byte[] buf, final int off, final int bits) {
switch (bits) {
case 1: packBits1(values, i, buf, off); break;
case 2: packBits2(values, i, buf, off); break;
case 3: packBits3(values, i, buf, off); break;
case 4: packBits4(values, i, buf, off); break;
case 5: packBits5(values, i, buf, off); break;
case 6: packBits6(values, i, buf, off); break;
case 7: packBits7(values, i, buf, off); break;
case 8: packBits8(values, i, buf, off); break;
case 9: packBits9(values, i, buf, off); break;
case 10: packBits10(values, i, buf, off); break;
case 11: packBits11(values, i, buf, off); break;
case 12: packBits12(values, i, buf, off); break;
case 13: packBits13(values, i, buf, off); break;
case 14: packBits14(values, i, buf, off); break;
case 15: packBits15(values, i, buf, off); break;
case 16: packBits16(values, i, buf, off); break;
case 17: packBits17(values, i, buf, off); break;
case 18: packBits18(values, i, buf, off); break;
case 19: packBits19(values, i, buf, off); break;
case 20: packBits20(values, i, buf, off); break;
case 21: packBits21(values, i, buf, off); break;
case 22: packBits22(values, i, buf, off); break;
case 23: packBits23(values, i, buf, off); break;
case 24: packBits24(values, i, buf, off); break;
case 25: packBits25(values, i, buf, off); break;
case 26: packBits26(values, i, buf, off); break;
case 27: packBits27(values, i, buf, off); break;
case 28: packBits28(values, i, buf, off); break;
case 29: packBits29(values, i, buf, off); break;
case 30: packBits30(values, i, buf, off); break;
case 31: packBits31(values, i, buf, off); break;
case 32: packBits32(values, i, buf, off); break;
case 33: packBits33(values, i, buf, off); break;
case 34: packBits34(values, i, buf, off); break;
case 35: packBits35(values, i, buf, off); break;
case 36: packBits36(values, i, buf, off); break;
case 37: packBits37(values, i, buf, off); break;
case 38: packBits38(values, i, buf, off); break;
case 39: packBits39(values, i, buf, off); break;
case 40: packBits40(values, i, buf, off); break;
case 41: packBits41(values, i, buf, off); break;
case 42: packBits42(values, i, buf, off); break;
case 43: packBits43(values, i, buf, off); break;
case 44: packBits44(values, i, buf, off); break;
case 45: packBits45(values, i, buf, off); break;
case 46: packBits46(values, i, buf, off); break;
case 47: packBits47(values, i, buf, off); break;
case 48: packBits48(values, i, buf, off); break;
case 49: packBits49(values, i, buf, off); break;
case 50: packBits50(values, i, buf, off); break;
case 51: packBits51(values, i, buf, off); break;
case 52: packBits52(values, i, buf, off); break;
case 53: packBits53(values, i, buf, off); break;
case 54: packBits54(values, i, buf, off); break;
case 55: packBits55(values, i, buf, off); break;
case 56: packBits56(values, i, buf, off); break;
case 57: packBits57(values, i, buf, off); break;
case 58: packBits58(values, i, buf, off); break;
case 59: packBits59(values, i, buf, off); break;
case 60: packBits60(values, i, buf, off); break;
case 61: packBits61(values, i, buf, off); break;
case 62: packBits62(values, i, buf, off); break;
case 63: packBits63(values, i, buf, off); break;
default: throw new SketchesArgumentException("wrong number of bits " + bits);
}
}
static void unpackBitsBlock8(final long[] values, final int i, final byte[] buf, final int off, final int bits) {
switch (bits) {
case 1: unpackBits1(values, i, buf, off); break;
case 2: unpackBits2(values, i, buf, off); break;
case 3: unpackBits3(values, i, buf, off); break;
case 4: unpackBits4(values, i, buf, off); break;
case 5: unpackBits5(values, i, buf, off); break;
case 6: unpackBits6(values, i, buf, off); break;
case 7: unpackBits7(values, i, buf, off); break;
case 8: unpackBits8(values, i, buf, off); break;
case 9: unpackBits9(values, i, buf, off); break;
case 10: unpackBits10(values, i, buf, off); break;
case 11: unpackBits11(values, i, buf, off); break;
case 12: unpackBits12(values, i, buf, off); break;
case 13: unpackBits13(values, i, buf, off); break;
case 14: unpackBits14(values, i, buf, off); break;
case 15: unpackBits15(values, i, buf, off); break;
case 16: unpackBits16(values, i, buf, off); break;
case 17: unpackBits17(values, i, buf, off); break;
case 18: unpackBits18(values, i, buf, off); break;
case 19: unpackBits19(values, i, buf, off); break;
case 20: unpackBits20(values, i, buf, off); break;
case 21: unpackBits21(values, i, buf, off); break;
case 22: unpackBits22(values, i, buf, off); break;
case 23: unpackBits23(values, i, buf, off); break;
case 24: unpackBits24(values, i, buf, off); break;
case 25: unpackBits25(values, i, buf, off); break;
case 26: unpackBits26(values, i, buf, off); break;
case 27: unpackBits27(values, i, buf, off); break;
case 28: unpackBits28(values, i, buf, off); break;
case 29: unpackBits29(values, i, buf, off); break;
case 30: unpackBits30(values, i, buf, off); break;
case 31: unpackBits31(values, i, buf, off); break;
case 32: unpackBits32(values, i, buf, off); break;
case 33: unpackBits33(values, i, buf, off); break;
case 34: unpackBits34(values, i, buf, off); break;
case 35: unpackBits35(values, i, buf, off); break;
case 36: unpackBits36(values, i, buf, off); break;
case 37: unpackBits37(values, i, buf, off); break;
case 38: unpackBits38(values, i, buf, off); break;
case 39: unpackBits39(values, i, buf, off); break;
case 40: unpackBits40(values, i, buf, off); break;
case 41: unpackBits41(values, i, buf, off); break;
case 42: unpackBits42(values, i, buf, off); break;
case 43: unpackBits43(values, i, buf, off); break;
case 44: unpackBits44(values, i, buf, off); break;
case 45: unpackBits45(values, i, buf, off); break;
case 46: unpackBits46(values, i, buf, off); break;
case 47: unpackBits47(values, i, buf, off); break;
case 48: unpackBits48(values, i, buf, off); break;
case 49: unpackBits49(values, i, buf, off); break;
case 50: unpackBits50(values, i, buf, off); break;
case 51: unpackBits51(values, i, buf, off); break;
case 52: unpackBits52(values, i, buf, off); break;
case 53: unpackBits53(values, i, buf, off); break;
case 54: unpackBits54(values, i, buf, off); break;
case 55: unpackBits55(values, i, buf, off); break;
case 56: unpackBits56(values, i, buf, off); break;
case 57: unpackBits57(values, i, buf, off); break;
case 58: unpackBits58(values, i, buf, off); break;
case 59: unpackBits59(values, i, buf, off); break;
case 60: unpackBits60(values, i, buf, off); break;
case 61: unpackBits61(values, i, buf, off); break;
case 62: unpackBits62(values, i, buf, off); break;
case 63: unpackBits63(values, i, buf, off); break;
default: throw new SketchesArgumentException("wrong number of bits " + bits);
}
}
static void packBits1(final long[] values, final int i, final byte[] buf, final int off) {
buf[off] = (byte) (values[i + 0] << 7);
buf[off] |= values[i + 1] << 6;
buf[off] |= values[i + 2] << 5;
buf[off] |= values[i + 3] << 4;
buf[off] |= values[i + 4] << 3;
buf[off] |= values[i + 5] << 2;
buf[off] |= values[i + 6] << 1;
buf[off] |= values[i + 7];
}
static void packBits2(final long[] values, final int i, final byte[] buf, int off) {
buf[off] = (byte) (values[i + 0] << 6);
buf[off] |= values[i + 1] << 4;
buf[off] |= values[i + 2] << 2;
buf[off++] |= values[i + 3];
buf[off] = (byte) (values[i + 4] << 6);
buf[off] |= values[i + 5] << 4;
buf[off] |= values[i + 6] << 2;
buf[off] |= values[i + 7];
}
static void packBits3(final long[] values, final int i, final byte[] buf, int off) {
buf[off] = (byte) (values[i + 0] << 5);
buf[off] |= values[i + 1] << 2;
buf[off++] |= values[i + 2] >>> 1;
buf[off] = (byte) (values[i + 2] << 7);
buf[off] |= values[i + 3] << 4;
buf[off] |= values[i + 4] << 1;
buf[off++] |= values[i + 5] >>> 2;
buf[off] = (byte) (values[i + 5] << 6);
buf[off] |= values[i + 6] << 3;
buf[off] |= values[i + 7];
}
static void packBits4(final long[] values, final int i, final byte[] buf, int off) {
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1];
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3];
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5];
buf[off] = (byte) (values[i + 6] << 4);
buf[off] |= values[i + 7];
}
static void packBits5(final long[] values, final int i, final byte[] buf, int off) {
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 2;
buf[off] = (byte) (values[i + 1] << 6);
buf[off] |= values[i + 2] << 1;
buf[off++] |= values[i + 3] >>> 4;
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 1;
buf[off] = (byte) (values[i + 4] << 7);
buf[off] |= values[i + 5] << 2;
buf[off++] |= values[i + 6] >>> 3;
buf[off] = (byte) (values[i + 6] << 5);
buf[off] |= values[i + 7];
}
static void packBits6(final long[] values, final int i, final byte[] buf, int off) {
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 4;
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 2;
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3];
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 4;
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 2;
buf[off] = (byte) (values[i + 6] << 6);
buf[off] |= values[i + 7];
}
static void packBits7(final long[] values, final int i, final byte[] buf, int off) {
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 6;
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 5;
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 4;
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 3;
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 2;
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 1;
buf[off] = (byte) (values[i + 6] << 7);
buf[off] |= values[i + 7];
}
static void packBits8(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6]);
buf[off] = (byte) (values[i + 7]);
}
static void packBits9(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 2;
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 3;
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 4;
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 5;
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 6;
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 7;
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits10(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 4;
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 6;
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 8;
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 4;
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 6;
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits11(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 6;
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 9;
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 4;
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 7;
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 10;
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 5;
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits12(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 8;
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 8;
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 8;
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits13(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 10;
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 7;
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 12;
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] >>> 4);
buf[off++] |= values[i + 4] >>> 9;
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 6;
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 11;
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits14(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 12;
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 10;
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 8;
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 12;
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 10;
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits15(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 14;
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 13;
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 12;
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 11;
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 10;
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 9;
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 8;
buf[off] = (byte) (values[i + 7]);
}
static void packBits16(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 8);
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 8);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 8);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 8);
buf[off++] = (byte) (values[i + 6]);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits17(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 9);
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 10;
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 11;
buf[off++] = (byte) (values[i + 2] >>> 3);
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 12;
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 13;
buf[off++] = (byte) (values[i + 4] >>> 5);
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 14;
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 15;
buf[off++] = (byte) (values[i + 6] >>> 7);
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits18(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 10);
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 12;
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 14;
buf[off++] = (byte) (values[i + 2] >>> 6);
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 16;
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 10);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 12;
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 14;
buf[off++] = (byte) (values[i + 6] >>> 6);
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits19(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 11);
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 14;
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 17;
buf[off++] = (byte) (values[i + 2] >>> 9);
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 12;
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 15;
buf[off++] |= values[i + 4] >>> 7;
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 18;
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 13;
buf[off++] = (byte) (values[i + 6] >>> 5);
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits20(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 12);
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 16;
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 12);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 16;
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 12);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 16;
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 12);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits21(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 13);
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 18;
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 15;
buf[off++] = (byte) (values[i + 2] >>> 7);
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 20;
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 17;
buf[off++] = (byte) (values[i + 4] >>> 9);
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 14;
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 19;
buf[off++] = (byte) (values[i + 6] >>> 11);
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits22(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 14);
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 20;
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 18;
buf[off++] = (byte) (values[i + 2] >>> 10);
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 16;
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 14);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 20;
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 18;
buf[off++] = (byte) (values[i + 6] >>> 10);
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits23(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 15);
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 22;
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 21;
buf[off++] = (byte) (values[i + 2] >>> 13);
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 20;
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 19;
buf[off++] = (byte) (values[i + 4] >>> 11);
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 18;
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 17;
buf[off++] = (byte) (values[i + 6] >>> 9);
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 16;
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits24(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 16);
buf[off++] = (byte) (values[i + 0] >>> 8);
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 16);
buf[off++] = (byte) (values[i + 2] >>> 8);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 16);
buf[off++] = (byte) (values[i + 4] >>> 8);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 16);
buf[off++] = (byte) (values[i + 6] >>> 8);
buf[off++] = (byte) (values[i + 6]);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits25(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 17);
buf[off++] = (byte) (values[i + 0] >>> 9);
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 18;
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 19;
buf[off++] = (byte) (values[i + 2] >>> 11);
buf[off++] = (byte) (values[i + 2] >>> 3);
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 20;
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 21;
buf[off++] = (byte) (values[i + 4] >>> 13);
buf[off++] = (byte) (values[i + 4] >>> 5);
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 22;
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 23;
buf[off++] = (byte) (values[i + 6] >>> 15);
buf[off++] = (byte) (values[i + 6] >>> 7);
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits26(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 18);
buf[off++] = (byte) (values[i + 0] >>> 10);
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 20;
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 22;
buf[off++] = (byte) (values[i + 2] >>> 14);
buf[off++] = (byte) (values[i + 2] >>> 6);
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 24;
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 18);
buf[off++] = (byte) (values[i + 4] >>> 10);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 20;
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 22;
buf[off++] = (byte) (values[i + 6] >>> 14);
buf[off++] = (byte) (values[i + 6] >>> 6);
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits27(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 19);
buf[off++] = (byte) (values[i + 0] >>> 11);
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 22;
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 25;
buf[off++] = (byte) (values[i + 2] >>> 17);
buf[off++] = (byte) (values[i + 2] >>> 9);
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 20;
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 23;
buf[off++] = (byte) (values[i + 4] >>> 15);
buf[off++] = (byte) (values[i + 4] >>> 7);
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 26;
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 21;
buf[off++] = (byte) (values[i + 6] >>> 13);
buf[off++] = (byte) (values[i + 6] >>> 5);
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits28(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 20);
buf[off++] = (byte) (values[i + 0] >>> 12);
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 24;
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 20);
buf[off++] = (byte) (values[i + 2] >>> 12);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 24;
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 20);
buf[off++] = (byte) (values[i + 4] >>> 12);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 24;
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 20);
buf[off++] = (byte) (values[i + 6] >>> 12);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits29(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 21);
buf[off++] = (byte) (values[i + 0] >>> 13);
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 26;
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 23;
buf[off++] = (byte) (values[i + 2] >>> 15);
buf[off++] = (byte) (values[i + 2] >>> 7);
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 28;
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 25;
buf[off++] = (byte) (values[i + 4] >>> 17);
buf[off++] = (byte) (values[i + 4] >>> 9);
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 22;
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 27;
buf[off++] = (byte) (values[i + 6] >>> 19);
buf[off++] = (byte) (values[i + 6] >>> 11);
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits30(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 22);
buf[off++] = (byte) (values[i + 0] >>> 14);
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 28;
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 26;
buf[off++] = (byte) (values[i + 2] >>> 18);
buf[off++] = (byte) (values[i + 2] >>> 10);
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 24;
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 22);
buf[off++] = (byte) (values[i + 4] >>> 14);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 28;
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 26;
buf[off++] = (byte) (values[i + 6] >>> 18);
buf[off++] = (byte) (values[i + 6] >>> 10);
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits31(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 23);
buf[off++] = (byte) (values[i + 0] >>> 15);
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 30;
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 29;
buf[off++] = (byte) (values[i + 2] >>> 21);
buf[off++] = (byte) (values[i + 2] >>> 13);
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 28;
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 27;
buf[off++] = (byte) (values[i + 4] >>> 19);
buf[off++] = (byte) (values[i + 4] >>> 11);
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 26;
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 25;
buf[off++] = (byte) (values[i + 6] >>> 17);
buf[off++] = (byte) (values[i + 6] >>> 9);
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 24;
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits32(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 24);
buf[off++] = (byte) (values[i + 0] >>> 16);
buf[off++] = (byte) (values[i + 0] >>> 8);
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 24);
buf[off++] = (byte) (values[i + 2] >>> 16);
buf[off++] = (byte) (values[i + 2] >>> 8);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 24);
buf[off++] = (byte) (values[i + 4] >>> 16);
buf[off++] = (byte) (values[i + 4] >>> 8);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 24);
buf[off++] = (byte) (values[i + 6] >>> 16);
buf[off++] = (byte) (values[i + 6] >>> 8);
buf[off++] = (byte) (values[i + 6]);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits33(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 25);
buf[off++] = (byte) (values[i + 0] >>> 17);
buf[off++] = (byte) (values[i + 0] >>> 9);
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 26;
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 27;
buf[off++] = (byte) (values[i + 2] >>> 19);
buf[off++] = (byte) (values[i + 2] >>> 11);
buf[off++] = (byte) (values[i + 2] >>> 3);
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 28;
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 29;
buf[off++] = (byte) (values[i + 4] >>> 21);
buf[off++] = (byte) (values[i + 4] >>> 13);
buf[off++] = (byte) (values[i + 4] >>> 5);
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 30;
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 31;
buf[off++] = (byte) (values[i + 6] >>> 23);
buf[off++] = (byte) (values[i + 6] >>> 15);
buf[off++] = (byte) (values[i + 6] >>> 7);
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits34(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 26);
buf[off++] = (byte) (values[i + 0] >>> 18);
buf[off++] = (byte) (values[i + 0] >>> 10);
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 28;
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 30;
buf[off++] = (byte) (values[i + 2] >>> 22);
buf[off++] = (byte) (values[i + 2] >>> 14);
buf[off++] = (byte) (values[i + 2] >>> 6);
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 32;
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 26);
buf[off++] = (byte) (values[i + 4] >>> 18);
buf[off++] = (byte) (values[i + 4] >>> 10);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 28;
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 30;
buf[off++] = (byte) (values[i + 6] >>> 22);
buf[off++] = (byte) (values[i + 6] >>> 14);
buf[off++] = (byte) (values[i + 6] >>> 6);
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits35(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 27);
buf[off++] = (byte) (values[i + 0] >>> 19);
buf[off++] = (byte) (values[i + 0] >>> 11);
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 30;
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 33;
buf[off++] = (byte) (values[i + 2] >>> 25);
buf[off++] = (byte) (values[i + 2] >>> 17);
buf[off++] = (byte) (values[i + 2] >>> 9);
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 28;
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 31;
buf[off++] = (byte) (values[i + 4] >>> 23);
buf[off++] = (byte) (values[i + 4] >>> 15);
buf[off++] = (byte) (values[i + 4] >>> 7);
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 34;
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 29;
buf[off++] = (byte) (values[i + 6] >>> 21);
buf[off++] = (byte) (values[i + 6] >>> 13);
buf[off++] = (byte) (values[i + 6] >>> 5);
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits36(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 28);
buf[off++] = (byte) (values[i + 0] >>> 20);
buf[off++] = (byte) (values[i + 0] >>> 12);
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 32;
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 28);
buf[off++] = (byte) (values[i + 2] >>> 20);
buf[off++] = (byte) (values[i + 2] >>> 12);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 32;
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 28);
buf[off++] = (byte) (values[i + 4] >>> 20);
buf[off++] = (byte) (values[i + 4] >>> 12);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 32;
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 28);
buf[off++] = (byte) (values[i + 6] >>> 20);
buf[off++] = (byte) (values[i + 6] >>> 12);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits37(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 29);
buf[off++] = (byte) (values[i + 0] >>> 21);
buf[off++] = (byte) (values[i + 0] >>> 13);
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 34;
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 31;
buf[off++] = (byte) (values[i + 2] >>> 23);
buf[off++] = (byte) (values[i + 2] >>> 15);
buf[off++] = (byte) (values[i + 2] >>> 7);
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 36;
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 33;
buf[off++] = (byte) (values[i + 4] >>> 25);
buf[off++] = (byte) (values[i + 4] >>> 17);
buf[off++] = (byte) (values[i + 4] >>> 9);
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 30;
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 35;
buf[off++] = (byte) (values[i + 6] >>> 27);
buf[off++] = (byte) (values[i + 6] >>> 19);
buf[off++] = (byte) (values[i + 6] >>> 11);
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits38(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 30);
buf[off++] = (byte) (values[i + 0] >>> 22);
buf[off++] = (byte) (values[i + 0] >>> 14);
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 36;
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 34;
buf[off++] = (byte) (values[i + 2] >>> 26);
buf[off++] = (byte) (values[i + 2] >>> 18);
buf[off++] = (byte) (values[i + 2] >>> 10);
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 32;
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 30);
buf[off++] = (byte) (values[i + 4] >>> 22);
buf[off++] = (byte) (values[i + 4] >>> 14);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 36;
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 34;
buf[off++] = (byte) (values[i + 6] >>> 26);
buf[off++] = (byte) (values[i + 6] >>> 18);
buf[off++] = (byte) (values[i + 6] >>> 10);
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits39(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 31);
buf[off++] = (byte) (values[i + 0] >>> 23);
buf[off++] = (byte) (values[i + 0] >>> 15);
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 38;
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 37;
buf[off++] = (byte) (values[i + 2] >>> 29);
buf[off++] = (byte) (values[i + 2] >>> 21);
buf[off++] = (byte) (values[i + 2] >>> 13);
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 36;
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 35;
buf[off++] = (byte) (values[i + 4] >>> 27);
buf[off++] = (byte) (values[i + 4] >>> 19);
buf[off++] = (byte) (values[i + 4] >>> 11);
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 34;
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 33;
buf[off++] = (byte) (values[i + 6] >>> 25);
buf[off++] = (byte) (values[i + 6] >>> 17);
buf[off++] = (byte) (values[i + 6] >>> 9);
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 32;
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits40(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 32);
buf[off++] = (byte) (values[i + 0] >>> 24);
buf[off++] = (byte) (values[i + 0] >>> 16);
buf[off++] = (byte) (values[i + 0] >>> 8);
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1] >>> 32);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 32);
buf[off++] = (byte) (values[i + 2] >>> 24);
buf[off++] = (byte) (values[i + 2] >>> 16);
buf[off++] = (byte) (values[i + 2] >>> 8);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 32);
buf[off++] = (byte) (values[i + 4] >>> 24);
buf[off++] = (byte) (values[i + 4] >>> 16);
buf[off++] = (byte) (values[i + 4] >>> 8);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5] >>> 32);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 32);
buf[off++] = (byte) (values[i + 6] >>> 24);
buf[off++] = (byte) (values[i + 6] >>> 16);
buf[off++] = (byte) (values[i + 6] >>> 8);
buf[off++] = (byte) (values[i + 6]);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits41(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 33);
buf[off++] = (byte) (values[i + 0] >>> 25);
buf[off++] = (byte) (values[i + 0] >>> 17);
buf[off++] = (byte) (values[i + 0] >>> 9);
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 34;
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 35;
buf[off++] = (byte) (values[i + 2] >>> 27);
buf[off++] = (byte) (values[i + 2] >>> 19);
buf[off++] = (byte) (values[i + 2] >>> 11);
buf[off++] = (byte) (values[i + 2] >>> 3);
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 36;
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 37;
buf[off++] = (byte) (values[i + 4] >>> 29);
buf[off++] = (byte) (values[i + 4] >>> 21);
buf[off++] = (byte) (values[i + 4] >>> 13);
buf[off++] = (byte) (values[i + 4] >>> 5);
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 38;
buf[off++] = (byte) (values[i + 5] >>> 30);
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 39;
buf[off++] = (byte) (values[i + 6] >>> 31);
buf[off++] = (byte) (values[i + 6] >>> 23);
buf[off++] = (byte) (values[i + 6] >>> 15);
buf[off++] = (byte) (values[i + 6] >>> 7);
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits42(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 34);
buf[off++] = (byte) (values[i + 0] >>> 26);
buf[off++] = (byte) (values[i + 0] >>> 18);
buf[off++] = (byte) (values[i + 0] >>> 10);
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 36;
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 38;
buf[off++] = (byte) (values[i + 2] >>> 30);
buf[off++] = (byte) (values[i + 2] >>> 22);
buf[off++] = (byte) (values[i + 2] >>> 14);
buf[off++] = (byte) (values[i + 2] >>> 6);
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 40;
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 34);
buf[off++] = (byte) (values[i + 4] >>> 26);
buf[off++] = (byte) (values[i + 4] >>> 18);
buf[off++] = (byte) (values[i + 4] >>> 10);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 36;
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 38;
buf[off++] = (byte) (values[i + 6] >>> 30);
buf[off++] = (byte) (values[i + 6] >>> 22);
buf[off++] = (byte) (values[i + 6] >>> 14);
buf[off++] = (byte) (values[i + 6] >>> 6);
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits43(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 35);
buf[off++] = (byte) (values[i + 0] >>> 27);
buf[off++] = (byte) (values[i + 0] >>> 19);
buf[off++] = (byte) (values[i + 0] >>> 11);
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 38;
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 41;
buf[off++] = (byte) (values[i + 2] >>> 33);
buf[off++] = (byte) (values[i + 2] >>> 25);
buf[off++] = (byte) (values[i + 2] >>> 17);
buf[off++] = (byte) (values[i + 2] >>> 9);
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 36;
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 39;
buf[off++] = (byte) (values[i + 4] >>> 31);
buf[off++] = (byte) (values[i + 4] >>> 23);
buf[off++] = (byte) (values[i + 4] >>> 15);
buf[off++] = (byte) (values[i + 4] >>> 7);
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 42;
buf[off++] = (byte) (values[i + 5] >>> 34);
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 37;
buf[off++] = (byte) (values[i + 6] >>> 29);
buf[off++] = (byte) (values[i + 6] >>> 21);
buf[off++] = (byte) (values[i + 6] >>> 13);
buf[off++] = (byte) (values[i + 6] >>> 5);
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits44(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 36);
buf[off++] = (byte) (values[i + 0] >>> 28);
buf[off++] = (byte) (values[i + 0] >>> 20);
buf[off++] = (byte) (values[i + 0] >>> 12);
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 40;
buf[off++] = (byte) (values[i + 1] >>> 32);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 36);
buf[off++] = (byte) (values[i + 2] >>> 28);
buf[off++] = (byte) (values[i + 2] >>> 20);
buf[off++] = (byte) (values[i + 2] >>> 12);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 40;
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 36);
buf[off++] = (byte) (values[i + 4] >>> 28);
buf[off++] = (byte) (values[i + 4] >>> 20);
buf[off++] = (byte) (values[i + 4] >>> 12);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 40;
buf[off++] = (byte) (values[i + 5] >>> 32);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 36);
buf[off++] = (byte) (values[i + 6] >>> 28);
buf[off++] = (byte) (values[i + 6] >>> 20);
buf[off++] = (byte) (values[i + 6] >>> 12);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits45(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 37);
buf[off++] = (byte) (values[i + 0] >>> 29);
buf[off++] = (byte) (values[i + 0] >>> 21);
buf[off++] = (byte) (values[i + 0] >>> 13);
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 42;
buf[off++] = (byte) (values[i + 1] >>> 34);
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 39;
buf[off++] = (byte) (values[i + 2] >>> 31);
buf[off++] = (byte) (values[i + 2] >>> 23);
buf[off++] = (byte) (values[i + 2] >>> 15);
buf[off++] = (byte) (values[i + 2] >>> 7);
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 44;
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 41;
buf[off++] = (byte) (values[i + 4] >>> 33);
buf[off++] = (byte) (values[i + 4] >>> 25);
buf[off++] = (byte) (values[i + 4] >>> 17);
buf[off++] = (byte) (values[i + 4] >>> 9);
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 38;
buf[off++] = (byte) (values[i + 5] >>> 30);
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 43;
buf[off++] = (byte) (values[i + 6] >>> 35);
buf[off++] = (byte) (values[i + 6] >>> 27);
buf[off++] = (byte) (values[i + 6] >>> 19);
buf[off++] = (byte) (values[i + 6] >>> 11);
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits46(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 38);
buf[off++] = (byte) (values[i + 0] >>> 30);
buf[off++] = (byte) (values[i + 0] >>> 22);
buf[off++] = (byte) (values[i + 0] >>> 14);
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 44;
buf[off++] = (byte) (values[i + 1] >>> 36);
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 42;
buf[off++] = (byte) (values[i + 2] >>> 34);
buf[off++] = (byte) (values[i + 2] >>> 26);
buf[off++] = (byte) (values[i + 2] >>> 18);
buf[off++] = (byte) (values[i + 2] >>> 10);
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 40;
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 38);
buf[off++] = (byte) (values[i + 4] >>> 30);
buf[off++] = (byte) (values[i + 4] >>> 22);
buf[off++] = (byte) (values[i + 4] >>> 14);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 44;
buf[off++] = (byte) (values[i + 5] >>> 36);
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 42;
buf[off++] = (byte) (values[i + 6] >>> 34);
buf[off++] = (byte) (values[i + 6] >>> 26);
buf[off++] = (byte) (values[i + 6] >>> 18);
buf[off++] = (byte) (values[i + 6] >>> 10);
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits47(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 39);
buf[off++] = (byte) (values[i + 0] >>> 31);
buf[off++] = (byte) (values[i + 0] >>> 23);
buf[off++] = (byte) (values[i + 0] >>> 15);
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 46;
buf[off++] = (byte) (values[i + 1] >>> 38);
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 45;
buf[off++] = (byte) (values[i + 2] >>> 37);
buf[off++] = (byte) (values[i + 2] >>> 29);
buf[off++] = (byte) (values[i + 2] >>> 21);
buf[off++] = (byte) (values[i + 2] >>> 13);
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 44;
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 43;
buf[off++] = (byte) (values[i + 4] >>> 35);
buf[off++] = (byte) (values[i + 4] >>> 27);
buf[off++] = (byte) (values[i + 4] >>> 19);
buf[off++] = (byte) (values[i + 4] >>> 11);
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 42;
buf[off++] = (byte) (values[i + 5] >>> 34);
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 41;
buf[off++] = (byte) (values[i + 6] >>> 33);
buf[off++] = (byte) (values[i + 6] >>> 25);
buf[off++] = (byte) (values[i + 6] >>> 17);
buf[off++] = (byte) (values[i + 6] >>> 9);
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 40;
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits48(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 40);
buf[off++] = (byte) (values[i + 0] >>> 32);
buf[off++] = (byte) (values[i + 0] >>> 24);
buf[off++] = (byte) (values[i + 0] >>> 16);
buf[off++] = (byte) (values[i + 0] >>> 8);
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1] >>> 40);
buf[off++] = (byte) (values[i + 1] >>> 32);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 40);
buf[off++] = (byte) (values[i + 2] >>> 32);
buf[off++] = (byte) (values[i + 2] >>> 24);
buf[off++] = (byte) (values[i + 2] >>> 16);
buf[off++] = (byte) (values[i + 2] >>> 8);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 40);
buf[off++] = (byte) (values[i + 4] >>> 32);
buf[off++] = (byte) (values[i + 4] >>> 24);
buf[off++] = (byte) (values[i + 4] >>> 16);
buf[off++] = (byte) (values[i + 4] >>> 8);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5] >>> 40);
buf[off++] = (byte) (values[i + 5] >>> 32);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 40);
buf[off++] = (byte) (values[i + 6] >>> 32);
buf[off++] = (byte) (values[i + 6] >>> 24);
buf[off++] = (byte) (values[i + 6] >>> 16);
buf[off++] = (byte) (values[i + 6] >>> 8);
buf[off++] = (byte) (values[i + 6]);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits49(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 41);
buf[off++] = (byte) (values[i + 0] >>> 33);
buf[off++] = (byte) (values[i + 0] >>> 25);
buf[off++] = (byte) (values[i + 0] >>> 17);
buf[off++] = (byte) (values[i + 0] >>> 9);
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 42;
buf[off++] = (byte) (values[i + 1] >>> 34);
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 43;
buf[off++] = (byte) (values[i + 2] >>> 35);
buf[off++] = (byte) (values[i + 2] >>> 27);
buf[off++] = (byte) (values[i + 2] >>> 19);
buf[off++] = (byte) (values[i + 2] >>> 11);
buf[off++] = (byte) (values[i + 2] >>> 3);
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 44;
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 45;
buf[off++] = (byte) (values[i + 4] >>> 37);
buf[off++] = (byte) (values[i + 4] >>> 29);
buf[off++] = (byte) (values[i + 4] >>> 21);
buf[off++] = (byte) (values[i + 4] >>> 13);
buf[off++] = (byte) (values[i + 4] >>> 5);
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 46;
buf[off++] = (byte) (values[i + 5] >>> 38);
buf[off++] = (byte) (values[i + 5] >>> 30);
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 47;
buf[off++] = (byte) (values[i + 6] >>> 39);
buf[off++] = (byte) (values[i + 6] >>> 31);
buf[off++] = (byte) (values[i + 6] >>> 23);
buf[off++] = (byte) (values[i + 6] >>> 15);
buf[off++] = (byte) (values[i + 6] >>> 7);
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits50(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 42);
buf[off++] = (byte) (values[i + 0] >>> 34);
buf[off++] = (byte) (values[i + 0] >>> 26);
buf[off++] = (byte) (values[i + 0] >>> 18);
buf[off++] = (byte) (values[i + 0] >>> 10);
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 44;
buf[off++] = (byte) (values[i + 1] >>> 36);
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 46;
buf[off++] = (byte) (values[i + 2] >>> 38);
buf[off++] = (byte) (values[i + 2] >>> 30);
buf[off++] = (byte) (values[i + 2] >>> 22);
buf[off++] = (byte) (values[i + 2] >>> 14);
buf[off++] = (byte) (values[i + 2] >>> 6);
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 48;
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 42);
buf[off++] = (byte) (values[i + 4] >>> 34);
buf[off++] = (byte) (values[i + 4] >>> 26);
buf[off++] = (byte) (values[i + 4] >>> 18);
buf[off++] = (byte) (values[i + 4] >>> 10);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 44;
buf[off++] = (byte) (values[i + 5] >>> 36);
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 46;
buf[off++] = (byte) (values[i + 6] >>> 38);
buf[off++] = (byte) (values[i + 6] >>> 30);
buf[off++] = (byte) (values[i + 6] >>> 22);
buf[off++] = (byte) (values[i + 6] >>> 14);
buf[off++] = (byte) (values[i + 6] >>> 6);
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits51(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 43);
buf[off++] = (byte) (values[i + 0] >>> 35);
buf[off++] = (byte) (values[i + 0] >>> 27);
buf[off++] = (byte) (values[i + 0] >>> 19);
buf[off++] = (byte) (values[i + 0] >>> 11);
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 46;
buf[off++] = (byte) (values[i + 1] >>> 38);
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 49;
buf[off++] = (byte) (values[i + 2] >>> 41);
buf[off++] = (byte) (values[i + 2] >>> 33);
buf[off++] = (byte) (values[i + 2] >>> 25);
buf[off++] = (byte) (values[i + 2] >>> 17);
buf[off++] = (byte) (values[i + 2] >>> 9);
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 44;
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 47;
buf[off++] = (byte) (values[i + 4] >>> 39);
buf[off++] = (byte) (values[i + 4] >>> 31);
buf[off++] = (byte) (values[i + 4] >>> 23);
buf[off++] = (byte) (values[i + 4] >>> 15);
buf[off++] = (byte) (values[i + 4] >>> 7);
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 50;
buf[off++] = (byte) (values[i + 5] >>> 42);
buf[off++] = (byte) (values[i + 5] >>> 34);
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 45;
buf[off++] = (byte) (values[i + 6] >>> 37);
buf[off++] = (byte) (values[i + 6] >>> 29);
buf[off++] = (byte) (values[i + 6] >>> 21);
buf[off++] = (byte) (values[i + 6] >>> 13);
buf[off++] = (byte) (values[i + 6] >>> 5);
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits52(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 44);
buf[off++] = (byte) (values[i + 0] >>> 36);
buf[off++] = (byte) (values[i + 0] >>> 28);
buf[off++] = (byte) (values[i + 0] >>> 20);
buf[off++] = (byte) (values[i + 0] >>> 12);
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 48;
buf[off++] = (byte) (values[i + 1] >>> 40);
buf[off++] = (byte) (values[i + 1] >>> 32);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 44);
buf[off++] = (byte) (values[i + 2] >>> 36);
buf[off++] = (byte) (values[i + 2] >>> 28);
buf[off++] = (byte) (values[i + 2] >>> 20);
buf[off++] = (byte) (values[i + 2] >>> 12);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 48;
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 44);
buf[off++] = (byte) (values[i + 4] >>> 36);
buf[off++] = (byte) (values[i + 4] >>> 28);
buf[off++] = (byte) (values[i + 4] >>> 20);
buf[off++] = (byte) (values[i + 4] >>> 12);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 48;
buf[off++] = (byte) (values[i + 5] >>> 40);
buf[off++] = (byte) (values[i + 5] >>> 32);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 44);
buf[off++] = (byte) (values[i + 6] >>> 36);
buf[off++] = (byte) (values[i + 6] >>> 28);
buf[off++] = (byte) (values[i + 6] >>> 20);
buf[off++] = (byte) (values[i + 6] >>> 12);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits53(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 45);
buf[off++] = (byte) (values[i + 0] >>> 37);
buf[off++] = (byte) (values[i + 0] >>> 29);
buf[off++] = (byte) (values[i + 0] >>> 21);
buf[off++] = (byte) (values[i + 0] >>> 13);
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 50;
buf[off++] = (byte) (values[i + 1] >>> 42);
buf[off++] = (byte) (values[i + 1] >>> 34);
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 47;
buf[off++] = (byte) (values[i + 2] >>> 39);
buf[off++] = (byte) (values[i + 2] >>> 31);
buf[off++] = (byte) (values[i + 2] >>> 23);
buf[off++] = (byte) (values[i + 2] >>> 15);
buf[off++] = (byte) (values[i + 2] >>> 7);
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 52;
buf[off++] = (byte) (values[i + 3] >>> 44);
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 49;
buf[off++] = (byte) (values[i + 4] >>> 41);
buf[off++] = (byte) (values[i + 4] >>> 33);
buf[off++] = (byte) (values[i + 4] >>> 25);
buf[off++] = (byte) (values[i + 4] >>> 17);
buf[off++] = (byte) (values[i + 4] >>> 9);
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 46;
buf[off++] = (byte) (values[i + 5] >>> 38);
buf[off++] = (byte) (values[i + 5] >>> 30);
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 51;
buf[off++] = (byte) (values[i + 6] >>> 43);
buf[off++] = (byte) (values[i + 6] >>> 35);
buf[off++] = (byte) (values[i + 6] >>> 27);
buf[off++] = (byte) (values[i + 6] >>> 19);
buf[off++] = (byte) (values[i + 6] >>> 11);
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits54(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 46);
buf[off++] = (byte) (values[i + 0] >>> 38);
buf[off++] = (byte) (values[i + 0] >>> 30);
buf[off++] = (byte) (values[i + 0] >>> 22);
buf[off++] = (byte) (values[i + 0] >>> 14);
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 52;
buf[off++] = (byte) (values[i + 1] >>> 44);
buf[off++] = (byte) (values[i + 1] >>> 36);
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 50;
buf[off++] = (byte) (values[i + 2] >>> 42);
buf[off++] = (byte) (values[i + 2] >>> 34);
buf[off++] = (byte) (values[i + 2] >>> 26);
buf[off++] = (byte) (values[i + 2] >>> 18);
buf[off++] = (byte) (values[i + 2] >>> 10);
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 48;
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 46);
buf[off++] = (byte) (values[i + 4] >>> 38);
buf[off++] = (byte) (values[i + 4] >>> 30);
buf[off++] = (byte) (values[i + 4] >>> 22);
buf[off++] = (byte) (values[i + 4] >>> 14);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 52;
buf[off++] = (byte) (values[i + 5] >>> 44);
buf[off++] = (byte) (values[i + 5] >>> 36);
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 50;
buf[off++] = (byte) (values[i + 6] >>> 42);
buf[off++] = (byte) (values[i + 6] >>> 34);
buf[off++] = (byte) (values[i + 6] >>> 26);
buf[off++] = (byte) (values[i + 6] >>> 18);
buf[off++] = (byte) (values[i + 6] >>> 10);
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits55(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 47);
buf[off++] = (byte) (values[i + 0] >>> 39);
buf[off++] = (byte) (values[i + 0] >>> 31);
buf[off++] = (byte) (values[i + 0] >>> 23);
buf[off++] = (byte) (values[i + 0] >>> 15);
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 54;
buf[off++] = (byte) (values[i + 1] >>> 46);
buf[off++] = (byte) (values[i + 1] >>> 38);
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 53;
buf[off++] = (byte) (values[i + 2] >>> 45);
buf[off++] = (byte) (values[i + 2] >>> 37);
buf[off++] = (byte) (values[i + 2] >>> 29);
buf[off++] = (byte) (values[i + 2] >>> 21);
buf[off++] = (byte) (values[i + 2] >>> 13);
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 52;
buf[off++] = (byte) (values[i + 3] >>> 44);
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 51;
buf[off++] = (byte) (values[i + 4] >>> 43);
buf[off++] = (byte) (values[i + 4] >>> 35);
buf[off++] = (byte) (values[i + 4] >>> 27);
buf[off++] = (byte) (values[i + 4] >>> 19);
buf[off++] = (byte) (values[i + 4] >>> 11);
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 50;
buf[off++] = (byte) (values[i + 5] >>> 42);
buf[off++] = (byte) (values[i + 5] >>> 34);
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 49;
buf[off++] = (byte) (values[i + 6] >>> 41);
buf[off++] = (byte) (values[i + 6] >>> 33);
buf[off++] = (byte) (values[i + 6] >>> 25);
buf[off++] = (byte) (values[i + 6] >>> 17);
buf[off++] = (byte) (values[i + 6] >>> 9);
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 48;
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits56(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 48);
buf[off++] = (byte) (values[i + 0] >>> 40);
buf[off++] = (byte) (values[i + 0] >>> 32);
buf[off++] = (byte) (values[i + 0] >>> 24);
buf[off++] = (byte) (values[i + 0] >>> 16);
buf[off++] = (byte) (values[i + 0] >>> 8);
buf[off++] = (byte) (values[i + 0]);
buf[off++] = (byte) (values[i + 1] >>> 48);
buf[off++] = (byte) (values[i + 1] >>> 40);
buf[off++] = (byte) (values[i + 1] >>> 32);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 48);
buf[off++] = (byte) (values[i + 2] >>> 40);
buf[off++] = (byte) (values[i + 2] >>> 32);
buf[off++] = (byte) (values[i + 2] >>> 24);
buf[off++] = (byte) (values[i + 2] >>> 16);
buf[off++] = (byte) (values[i + 2] >>> 8);
buf[off++] = (byte) (values[i + 2]);
buf[off++] = (byte) (values[i + 3] >>> 48);
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 48);
buf[off++] = (byte) (values[i + 4] >>> 40);
buf[off++] = (byte) (values[i + 4] >>> 32);
buf[off++] = (byte) (values[i + 4] >>> 24);
buf[off++] = (byte) (values[i + 4] >>> 16);
buf[off++] = (byte) (values[i + 4] >>> 8);
buf[off++] = (byte) (values[i + 4]);
buf[off++] = (byte) (values[i + 5] >>> 48);
buf[off++] = (byte) (values[i + 5] >>> 40);
buf[off++] = (byte) (values[i + 5] >>> 32);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 48);
buf[off++] = (byte) (values[i + 6] >>> 40);
buf[off++] = (byte) (values[i + 6] >>> 32);
buf[off++] = (byte) (values[i + 6] >>> 24);
buf[off++] = (byte) (values[i + 6] >>> 16);
buf[off++] = (byte) (values[i + 6] >>> 8);
buf[off++] = (byte) (values[i + 6]);
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits57(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 49);
buf[off++] = (byte) (values[i + 0] >>> 41);
buf[off++] = (byte) (values[i + 0] >>> 33);
buf[off++] = (byte) (values[i + 0] >>> 25);
buf[off++] = (byte) (values[i + 0] >>> 17);
buf[off++] = (byte) (values[i + 0] >>> 9);
buf[off++] = (byte) (values[i + 0] >>> 1);
buf[off] = (byte) (values[i + 0] << 7);
buf[off++] |= values[i + 1] >>> 50;
buf[off++] = (byte) (values[i + 1] >>> 42);
buf[off++] = (byte) (values[i + 1] >>> 34);
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 51;
buf[off++] = (byte) (values[i + 2] >>> 43);
buf[off++] = (byte) (values[i + 2] >>> 35);
buf[off++] = (byte) (values[i + 2] >>> 27);
buf[off++] = (byte) (values[i + 2] >>> 19);
buf[off++] = (byte) (values[i + 2] >>> 11);
buf[off++] = (byte) (values[i + 2] >>> 3);
buf[off] = (byte) (values[i + 2] << 5);
buf[off++] |= values[i + 3] >>> 52;
buf[off++] = (byte) (values[i + 3] >>> 44);
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 53;
buf[off++] = (byte) (values[i + 4] >>> 45);
buf[off++] = (byte) (values[i + 4] >>> 37);
buf[off++] = (byte) (values[i + 4] >>> 29);
buf[off++] = (byte) (values[i + 4] >>> 21);
buf[off++] = (byte) (values[i + 4] >>> 13);
buf[off++] = (byte) (values[i + 4] >>> 5);
buf[off] = (byte) (values[i + 4] << 3);
buf[off++] |= values[i + 5] >>> 54;
buf[off++] = (byte) (values[i + 5] >>> 46);
buf[off++] = (byte) (values[i + 5] >>> 38);
buf[off++] = (byte) (values[i + 5] >>> 30);
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 55;
buf[off++] = (byte) (values[i + 6] >>> 47);
buf[off++] = (byte) (values[i + 6] >>> 39);
buf[off++] = (byte) (values[i + 6] >>> 31);
buf[off++] = (byte) (values[i + 6] >>> 23);
buf[off++] = (byte) (values[i + 6] >>> 15);
buf[off++] = (byte) (values[i + 6] >>> 7);
buf[off] = (byte) (values[i + 6] << 1);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits58(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 50);
buf[off++] = (byte) (values[i + 0] >>> 42);
buf[off++] = (byte) (values[i + 0] >>> 34);
buf[off++] = (byte) (values[i + 0] >>> 26);
buf[off++] = (byte) (values[i + 0] >>> 18);
buf[off++] = (byte) (values[i + 0] >>> 10);
buf[off++] = (byte) (values[i + 0] >>> 2);
buf[off] = (byte) (values[i + 0] << 6);
buf[off++] |= values[i + 1] >>> 52;
buf[off++] = (byte) (values[i + 1] >>> 44);
buf[off++] = (byte) (values[i + 1] >>> 36);
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 54;
buf[off++] = (byte) (values[i + 2] >>> 46);
buf[off++] = (byte) (values[i + 2] >>> 38);
buf[off++] = (byte) (values[i + 2] >>> 30);
buf[off++] = (byte) (values[i + 2] >>> 22);
buf[off++] = (byte) (values[i + 2] >>> 14);
buf[off++] = (byte) (values[i + 2] >>> 6);
buf[off] = (byte) (values[i + 2] << 2);
buf[off++] |= values[i + 3] >>> 56;
buf[off++] = (byte) (values[i + 3] >>> 48);
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 50);
buf[off++] = (byte) (values[i + 4] >>> 42);
buf[off++] = (byte) (values[i + 4] >>> 34);
buf[off++] = (byte) (values[i + 4] >>> 26);
buf[off++] = (byte) (values[i + 4] >>> 18);
buf[off++] = (byte) (values[i + 4] >>> 10);
buf[off++] = (byte) (values[i + 4] >>> 2);
buf[off] = (byte) (values[i + 4] << 6);
buf[off++] |= values[i + 5] >>> 52;
buf[off++] = (byte) (values[i + 5] >>> 44);
buf[off++] = (byte) (values[i + 5] >>> 36);
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 54;
buf[off++] = (byte) (values[i + 6] >>> 46);
buf[off++] = (byte) (values[i + 6] >>> 38);
buf[off++] = (byte) (values[i + 6] >>> 30);
buf[off++] = (byte) (values[i + 6] >>> 22);
buf[off++] = (byte) (values[i + 6] >>> 14);
buf[off++] = (byte) (values[i + 6] >>> 6);
buf[off] = (byte) (values[i + 6] << 2);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits59(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 51);
buf[off++] = (byte) (values[i + 0] >>> 43);
buf[off++] = (byte) (values[i + 0] >>> 35);
buf[off++] = (byte) (values[i + 0] >>> 27);
buf[off++] = (byte) (values[i + 0] >>> 19);
buf[off++] = (byte) (values[i + 0] >>> 11);
buf[off++] = (byte) (values[i + 0] >>> 3);
buf[off] = (byte) (values[i + 0] << 5);
buf[off++] |= values[i + 1] >>> 54;
buf[off++] = (byte) (values[i + 1] >>> 46);
buf[off++] = (byte) (values[i + 1] >>> 38);
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 57;
buf[off++] = (byte) (values[i + 2] >>> 49);
buf[off++] = (byte) (values[i + 2] >>> 41);
buf[off++] = (byte) (values[i + 2] >>> 33);
buf[off++] = (byte) (values[i + 2] >>> 25);
buf[off++] = (byte) (values[i + 2] >>> 17);
buf[off++] = (byte) (values[i + 2] >>> 9);
buf[off++] = (byte) (values[i + 2] >>> 1);
buf[off] = (byte) (values[i + 2] << 7);
buf[off++] |= values[i + 3] >>> 52;
buf[off++] = (byte) (values[i + 3] >>> 44);
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 55;
buf[off++] = (byte) (values[i + 4] >>> 47);
buf[off++] = (byte) (values[i + 4] >>> 39);
buf[off++] = (byte) (values[i + 4] >>> 31);
buf[off++] = (byte) (values[i + 4] >>> 23);
buf[off++] = (byte) (values[i + 4] >>> 15);
buf[off++] = (byte) (values[i + 4] >>> 7);
buf[off] = (byte) (values[i + 4] << 1);
buf[off++] |= values[i + 5] >>> 58;
buf[off++] = (byte) (values[i + 5] >>> 50);
buf[off++] = (byte) (values[i + 5] >>> 42);
buf[off++] = (byte) (values[i + 5] >>> 34);
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 53;
buf[off++] = (byte) (values[i + 6] >>> 45);
buf[off++] = (byte) (values[i + 6] >>> 37);
buf[off++] = (byte) (values[i + 6] >>> 29);
buf[off++] = (byte) (values[i + 6] >>> 21);
buf[off++] = (byte) (values[i + 6] >>> 13);
buf[off++] = (byte) (values[i + 6] >>> 5);
buf[off] = (byte) (values[i + 6] << 3);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits60(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 52);
buf[off++] = (byte) (values[i + 0] >>> 44);
buf[off++] = (byte) (values[i + 0] >>> 36);
buf[off++] = (byte) (values[i + 0] >>> 28);
buf[off++] = (byte) (values[i + 0] >>> 20);
buf[off++] = (byte) (values[i + 0] >>> 12);
buf[off++] = (byte) (values[i + 0] >>> 4);
buf[off] = (byte) (values[i + 0] << 4);
buf[off++] |= values[i + 1] >>> 56;
buf[off++] = (byte) (values[i + 1] >>> 48);
buf[off++] = (byte) (values[i + 1] >>> 40);
buf[off++] = (byte) (values[i + 1] >>> 32);
buf[off++] = (byte) (values[i + 1] >>> 24);
buf[off++] = (byte) (values[i + 1] >>> 16);
buf[off++] = (byte) (values[i + 1] >>> 8);
buf[off++] = (byte) (values[i + 1]);
buf[off++] = (byte) (values[i + 2] >>> 52);
buf[off++] = (byte) (values[i + 2] >>> 44);
buf[off++] = (byte) (values[i + 2] >>> 36);
buf[off++] = (byte) (values[i + 2] >>> 28);
buf[off++] = (byte) (values[i + 2] >>> 20);
buf[off++] = (byte) (values[i + 2] >>> 12);
buf[off++] = (byte) (values[i + 2] >>> 4);
buf[off] = (byte) (values[i + 2] << 4);
buf[off++] |= values[i + 3] >>> 56;
buf[off++] = (byte) (values[i + 3] >>> 48);
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 52);
buf[off++] = (byte) (values[i + 4] >>> 44);
buf[off++] = (byte) (values[i + 4] >>> 36);
buf[off++] = (byte) (values[i + 4] >>> 28);
buf[off++] = (byte) (values[i + 4] >>> 20);
buf[off++] = (byte) (values[i + 4] >>> 12);
buf[off++] = (byte) (values[i + 4] >>> 4);
buf[off] = (byte) (values[i + 4] << 4);
buf[off++] |= values[i + 5] >>> 56;
buf[off++] = (byte) (values[i + 5] >>> 48);
buf[off++] = (byte) (values[i + 5] >>> 40);
buf[off++] = (byte) (values[i + 5] >>> 32);
buf[off++] = (byte) (values[i + 5] >>> 24);
buf[off++] = (byte) (values[i + 5] >>> 16);
buf[off++] = (byte) (values[i + 5] >>> 8);
buf[off++] = (byte) (values[i + 5]);
buf[off++] = (byte) (values[i + 6] >>> 52);
buf[off++] = (byte) (values[i + 6] >>> 44);
buf[off++] = (byte) (values[i + 6] >>> 36);
buf[off++] = (byte) (values[i + 6] >>> 28);
buf[off++] = (byte) (values[i + 6] >>> 20);
buf[off++] = (byte) (values[i + 6] >>> 12);
buf[off++] = (byte) (values[i + 6] >>> 4);
buf[off] = (byte) (values[i + 6] << 4);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits61(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 53);
buf[off++] = (byte) (values[i + 0] >>> 45);
buf[off++] = (byte) (values[i + 0] >>> 37);
buf[off++] = (byte) (values[i + 0] >>> 29);
buf[off++] = (byte) (values[i + 0] >>> 21);
buf[off++] = (byte) (values[i + 0] >>> 13);
buf[off++] = (byte) (values[i + 0] >>> 5);
buf[off] = (byte) (values[i + 0] << 3);
buf[off++] |= values[i + 1] >>> 58;
buf[off++] = (byte) (values[i + 1] >>> 50);
buf[off++] = (byte) (values[i + 1] >>> 42);
buf[off++] = (byte) (values[i + 1] >>> 34);
buf[off++] = (byte) (values[i + 1] >>> 26);
buf[off++] = (byte) (values[i + 1] >>> 18);
buf[off++] = (byte) (values[i + 1] >>> 10);
buf[off++] = (byte) (values[i + 1] >>> 2);
buf[off] = (byte) (values[i + 1] << 6);
buf[off++] |= values[i + 2] >>> 55;
buf[off++] = (byte) (values[i + 2] >>> 47);
buf[off++] = (byte) (values[i + 2] >>> 39);
buf[off++] = (byte) (values[i + 2] >>> 31);
buf[off++] = (byte) (values[i + 2] >>> 23);
buf[off++] = (byte) (values[i + 2] >>> 15);
buf[off++] = (byte) (values[i + 2] >>> 7);
buf[off] = (byte) (values[i + 2] << 1);
buf[off++] |= values[i + 3] >>> 60;
buf[off++] = (byte) (values[i + 3] >>> 52);
buf[off++] = (byte) (values[i + 3] >>> 44);
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 57;
buf[off++] = (byte) (values[i + 4] >>> 49);
buf[off++] = (byte) (values[i + 4] >>> 41);
buf[off++] = (byte) (values[i + 4] >>> 33);
buf[off++] = (byte) (values[i + 4] >>> 25);
buf[off++] = (byte) (values[i + 4] >>> 17);
buf[off++] = (byte) (values[i + 4] >>> 9);
buf[off++] = (byte) (values[i + 4] >>> 1);
buf[off] = (byte) (values[i + 4] << 7);
buf[off++] |= values[i + 5] >>> 54;
buf[off++] = (byte) (values[i + 5] >>> 46);
buf[off++] = (byte) (values[i + 5] >>> 38);
buf[off++] = (byte) (values[i + 5] >>> 30);
buf[off++] = (byte) (values[i + 5] >>> 22);
buf[off++] = (byte) (values[i + 5] >>> 14);
buf[off++] = (byte) (values[i + 5] >>> 6);
buf[off] = (byte) (values[i + 5] << 2);
buf[off++] |= values[i + 6] >>> 59;
buf[off++] = (byte) (values[i + 6] >>> 51);
buf[off++] = (byte) (values[i + 6] >>> 43);
buf[off++] = (byte) (values[i + 6] >>> 35);
buf[off++] = (byte) (values[i + 6] >>> 27);
buf[off++] = (byte) (values[i + 6] >>> 19);
buf[off++] = (byte) (values[i + 6] >>> 11);
buf[off++] = (byte) (values[i + 6] >>> 3);
buf[off] = (byte) (values[i + 6] << 5);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits62(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 54);
buf[off++] = (byte) (values[i + 0] >>> 46);
buf[off++] = (byte) (values[i + 0] >>> 38);
buf[off++] = (byte) (values[i + 0] >>> 30);
buf[off++] = (byte) (values[i + 0] >>> 22);
buf[off++] = (byte) (values[i + 0] >>> 14);
buf[off++] = (byte) (values[i + 0] >>> 6);
buf[off] = (byte) (values[i + 0] << 2);
buf[off++] |= values[i + 1] >>> 60;
buf[off++] = (byte) (values[i + 1] >>> 52);
buf[off++] = (byte) (values[i + 1] >>> 44);
buf[off++] = (byte) (values[i + 1] >>> 36);
buf[off++] = (byte) (values[i + 1] >>> 28);
buf[off++] = (byte) (values[i + 1] >>> 20);
buf[off++] = (byte) (values[i + 1] >>> 12);
buf[off++] = (byte) (values[i + 1] >>> 4);
buf[off] = (byte) (values[i + 1] << 4);
buf[off++] |= values[i + 2] >>> 58;
buf[off++] = (byte) (values[i + 2] >>> 50);
buf[off++] = (byte) (values[i + 2] >>> 42);
buf[off++] = (byte) (values[i + 2] >>> 34);
buf[off++] = (byte) (values[i + 2] >>> 26);
buf[off++] = (byte) (values[i + 2] >>> 18);
buf[off++] = (byte) (values[i + 2] >>> 10);
buf[off++] = (byte) (values[i + 2] >>> 2);
buf[off] = (byte) (values[i + 2] << 6);
buf[off++] |= values[i + 3] >>> 56;
buf[off++] = (byte) (values[i + 3] >>> 48);
buf[off++] = (byte) (values[i + 3] >>> 40);
buf[off++] = (byte) (values[i + 3] >>> 32);
buf[off++] = (byte) (values[i + 3] >>> 24);
buf[off++] = (byte) (values[i + 3] >>> 16);
buf[off++] = (byte) (values[i + 3] >>> 8);
buf[off++] = (byte) (values[i + 3]);
buf[off++] = (byte) (values[i + 4] >>> 54);
buf[off++] = (byte) (values[i + 4] >>> 46);
buf[off++] = (byte) (values[i + 4] >>> 38);
buf[off++] = (byte) (values[i + 4] >>> 30);
buf[off++] = (byte) (values[i + 4] >>> 22);
buf[off++] = (byte) (values[i + 4] >>> 14);
buf[off++] = (byte) (values[i + 4] >>> 6);
buf[off] = (byte) (values[i + 4] << 2);
buf[off++] |= values[i + 5] >>> 60;
buf[off++] = (byte) (values[i + 5] >>> 52);
buf[off++] = (byte) (values[i + 5] >>> 44);
buf[off++] = (byte) (values[i + 5] >>> 36);
buf[off++] = (byte) (values[i + 5] >>> 28);
buf[off++] = (byte) (values[i + 5] >>> 20);
buf[off++] = (byte) (values[i + 5] >>> 12);
buf[off++] = (byte) (values[i + 5] >>> 4);
buf[off] = (byte) (values[i + 5] << 4);
buf[off++] |= values[i + 6] >>> 58;
buf[off++] = (byte) (values[i + 6] >>> 50);
buf[off++] = (byte) (values[i + 6] >>> 42);
buf[off++] = (byte) (values[i + 6] >>> 34);
buf[off++] = (byte) (values[i + 6] >>> 26);
buf[off++] = (byte) (values[i + 6] >>> 18);
buf[off++] = (byte) (values[i + 6] >>> 10);
buf[off++] = (byte) (values[i + 6] >>> 2);
buf[off] = (byte) (values[i + 6] << 6);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) (values[i + 7]);
}
static void packBits63(final long[] values, final int i, final byte[] buf, int off) {
buf[off++] = (byte) (values[i + 0] >>> 55);
buf[off++] = (byte) (values[i + 0] >>> 47);
buf[off++] = (byte) (values[i + 0] >>> 39);
buf[off++] = (byte) (values[i + 0] >>> 31);
buf[off++] = (byte) (values[i + 0] >>> 23);
buf[off++] = (byte) (values[i + 0] >>> 15);
buf[off++] = (byte) (values[i + 0] >>> 7);
buf[off] = (byte) (values[i + 0] << 1);
buf[off++] |= values[i + 1] >>> 62;
buf[off++] = (byte) (values[i + 1] >>> 54);
buf[off++] = (byte) (values[i + 1] >>> 46);
buf[off++] = (byte) (values[i + 1] >>> 38);
buf[off++] = (byte) (values[i + 1] >>> 30);
buf[off++] = (byte) (values[i + 1] >>> 22);
buf[off++] = (byte) (values[i + 1] >>> 14);
buf[off++] = (byte) (values[i + 1] >>> 6);
buf[off] = (byte) (values[i + 1] << 2);
buf[off++] |= values[i + 2] >>> 61;
buf[off++] = (byte) (values[i + 2] >>> 53);
buf[off++] = (byte) (values[i + 2] >>> 45);
buf[off++] = (byte) (values[i + 2] >>> 37);
buf[off++] = (byte) (values[i + 2] >>> 29);
buf[off++] = (byte) (values[i + 2] >>> 21);
buf[off++] = (byte) (values[i + 2] >>> 13);
buf[off++] = (byte) (values[i + 2] >>> 5);
buf[off] = (byte) (values[i + 2] << 3);
buf[off++] |= values[i + 3] >>> 60;
buf[off++] = (byte) (values[i + 3] >>> 52);
buf[off++] = (byte) (values[i + 3] >>> 44);
buf[off++] = (byte) (values[i + 3] >>> 36);
buf[off++] = (byte) (values[i + 3] >>> 28);
buf[off++] = (byte) (values[i + 3] >>> 20);
buf[off++] = (byte) (values[i + 3] >>> 12);
buf[off++] = (byte) (values[i + 3] >>> 4);
buf[off] = (byte) (values[i + 3] << 4);
buf[off++] |= values[i + 4] >>> 59;
buf[off++] = (byte) (values[i + 4] >>> 51);
buf[off++] = (byte) (values[i + 4] >>> 43);
buf[off++] = (byte) (values[i + 4] >>> 35);
buf[off++] = (byte) (values[i + 4] >>> 27);
buf[off++] = (byte) (values[i + 4] >>> 19);
buf[off++] = (byte) (values[i + 4] >>> 11);
buf[off++] = (byte) (values[i + 4] >>> 3);
buf[off] = (byte) (values[i + 4] << 5);
buf[off++] |= values[i + 5] >>> 58;
buf[off++] = (byte) (values[i + 5] >>> 50);
buf[off++] = (byte) (values[i + 5] >>> 42);
buf[off++] = (byte) (values[i + 5] >>> 34);
buf[off++] = (byte) (values[i + 5] >>> 26);
buf[off++] = (byte) (values[i + 5] >>> 18);
buf[off++] = (byte) (values[i + 5] >>> 10);
buf[off++] = (byte) (values[i + 5] >>> 2);
buf[off] = (byte) (values[i + 5] << 6);
buf[off++] |= values[i + 6] >>> 57;
buf[off++] = (byte) (values[i + 6] >>> 49);
buf[off++] = (byte) (values[i + 6] >>> 41);
buf[off++] = (byte) (values[i + 6] >>> 33);
buf[off++] = (byte) (values[i + 6] >>> 25);
buf[off++] = (byte) (values[i + 6] >>> 17);
buf[off++] = (byte) (values[i + 6] >>> 9);
buf[off++] = (byte) (values[i + 6] >>> 1);
buf[off] = (byte) (values[i + 6] << 7);
buf[off++] |= values[i + 7] >>> 56;
buf[off++] = (byte) (values[i + 7] >>> 48);
buf[off++] = (byte) (values[i + 7] >>> 40);
buf[off++] = (byte) (values[i + 7] >>> 32);
buf[off++] = (byte) (values[i + 7] >>> 24);
buf[off++] = (byte) (values[i + 7] >>> 16);
buf[off++] = (byte) (values[i + 7] >>> 8);
buf[off] = (byte) values[i + 7];
}
static void unpackBits1(final long[] values, final int i, final byte[] buf, final int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off]) >>> 7) & 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off]) >>> 6) & 1;
values[i + 2] = (Byte.toUnsignedLong(buf[off]) >>> 5) & 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off]) >>> 4) & 1;
values[i + 4] = (Byte.toUnsignedLong(buf[off]) >>> 3) & 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off]) >>> 2) & 1;
values[i + 6] = (Byte.toUnsignedLong(buf[off]) >>> 1) & 1;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 1;
}
static void unpackBits2(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off]) >>> 6) & 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off]) >>> 4) & 3;
values[i + 2] = (Byte.toUnsignedLong(buf[off]) >>> 2) & 3;
values[i + 3] = Byte.toUnsignedLong(buf[off++]) & 3;
values[i + 4] = (Byte.toUnsignedLong(buf[off]) >>> 6) & 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off]) >>> 4) & 3;
values[i + 6] = (Byte.toUnsignedLong(buf[off]) >>> 2) & 3;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 3;
}
static void unpackBits3(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off]) >>> 2) & 7;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off]) >>> 4) & 7;
values[i + 4] = (Byte.toUnsignedLong(buf[off]) >>> 1) & 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off]) >>> 3) & 7;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 7;
}
static void unpackBits4(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = Byte.toUnsignedLong(buf[off++]) & 0xf;
values[i + 2] = Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = Byte.toUnsignedLong(buf[off++]) & 0xf;
values[i + 4] = Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = Byte.toUnsignedLong(buf[off++]) & 0xf;
values[i + 6] = Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 0xf;
}
static void unpackBits5(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off]) >>> 1) & 0x1f;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off]) >>> 2) & 0x1f;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 0x1f;
}
static void unpackBits6(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = Byte.toUnsignedLong(buf[off++]) & 0x3f;
values[i + 4] = Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 0x3f;
}
static void unpackBits7(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = Byte.toUnsignedLong(buf[off]) & 0x7f;
}
static void unpackBits8(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]);
values[i + 1] = Byte.toUnsignedLong(buf[off++]);
values[i + 2] = Byte.toUnsignedLong(buf[off++]);
values[i + 3] = Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]);
values[i + 5] = Byte.toUnsignedLong(buf[off++]);
values[i + 6] = Byte.toUnsignedLong(buf[off++]);
values[i + 7] = Byte.toUnsignedLong(buf[off]);
}
static void unpackBits9(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits10(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits11(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits12(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits13(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits14(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits15(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits16(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]);
values[i + 1] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]);
values[i + 3] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]);
values[i + 5] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]);
values[i + 7] = Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits17(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 11;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 13;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 15;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits18(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 14;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 14;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits19(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 17;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 15;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 13;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits20(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits21(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 15;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 17;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 19;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits22(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits23(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 21;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 19;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 17;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits24(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]);
values[i + 1] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]);
values[i + 3] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]);
values[i + 5] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]);
values[i + 7] = Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits25(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 19;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 21;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 23;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits26(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 22;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 22;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits27(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 25;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 23;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 21;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits28(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits29(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 23;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 25;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 27;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits30(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 26;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 26;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits31(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 29;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 27;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 25;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits32(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]);
values[i + 1] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]);
values[i + 3] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]);
values[i + 5] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]);
values[i + 7] = (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits33(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 27;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 29;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 30;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 31;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 32;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits34(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 30;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 30;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]);
}
static void unpackBits35(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 2) << 33;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 31;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 29;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits36(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits37(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 31;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 23;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 33;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 30;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 35;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits38(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 34;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 34;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits39(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 37;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 35;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 33;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits40(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]);
values[i + 1] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]);
values[i + 3] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]);
values[i + 5] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]);
values[i + 7] = (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits41(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 35;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 37;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 38;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 39;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits42(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 38;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 38;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits43(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 41;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 39;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 42;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 37;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits44(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 40;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 40;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits45(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 42;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 39;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 23;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 41;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 38;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 43;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits46(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 44;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 42;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 44;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 42;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits47(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 46;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 45;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 43;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 42;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 41;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits48(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]);
values[i + 1] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]);
values[i + 3] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]);
values[i + 5] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]);
values[i + 7] = (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits49(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 42;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 43;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 45;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 46;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 47;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits50(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 44;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 46;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 44;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 46;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits51(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 46;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 49;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 47;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 50;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 45;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits52(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 48;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 48;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits53(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 45;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 50;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 47;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 23;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 52;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 49;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 46;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 51;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits54(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 52;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 50;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 52;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 50;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]);
}
static void unpackBits55(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 47;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 54;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 53;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 45;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 52;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 51;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 50;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 49;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits56(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]);
values[i + 1] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]);
values[i + 3] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]);
values[i + 5] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]);
values[i + 7] = (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits57(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 49;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 50;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 51;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 52;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 53;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 45;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 7) << 54;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 55;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 47;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 1) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits58(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 52;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 54;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 3) << 56;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 52;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 54;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 3) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]);
}
static void unpackBits59(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 51;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 54;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 57;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 49;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 52;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 55;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 47;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 1) << 58;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 53;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 45;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 7) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits60(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 56;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]);
values[i + 2] = (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 56;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 56;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]);
values[i + 6] = (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits61(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 53;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 45;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 7) << 58;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 55;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 47;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 1) << 60;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 57;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 49;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 54;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 3) << 59;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 51;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits62(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 54;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 60;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 58;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 56;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 54;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 60;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 58;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
static void unpackBits63(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 55;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 47;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 39;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 31;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 23;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 15;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 62;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 54;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 61;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 53;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 45;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 37;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 29;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 21;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 60;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 59;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 51;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 43;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 35;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 27;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 19;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 58;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 57;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 49;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 41;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 33;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 25;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 17;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}
}