static inline int decode_scalar(GetBitContext *gb, int k, int limit, int readsamplesize){

    int x = get_unary_0_9(gb);



    if (x > 8) { /* RICE THRESHOLD */

        /* use alternative encoding */

        x = get_bits(gb, readsamplesize);

    } else {

        if (k >= limit)

            k = limit;



        if (k != 1) {

            int extrabits = show_bits(gb, k);



            /* multiply x by 2^k - 1, as part of their strange algorithm */

            x = (x << k) - x;



            if (extrabits > 1) {

                x += extrabits - 1;

                skip_bits(gb, k);

            } else

                skip_bits(gb, k - 1);

        }

    }

    return x;

}

static inline int decode_scalar(GetBitContext *gb, int k, int limit, int readsamplesize){

    int x = get_unary_0_9(gb);



    if (x > 8) { 

        

        x = get_bits(gb, readsamplesize);

    } else {

        if (k >= limit)

            k = limit;



        if (k != 1) {

            int extrabits = show_bits(gb, k);



            

            x = (x << k) - x;



            if (extrabits > 1) {

                x += extrabits - 1;

                skip_bits(gb, k);

            } else

                skip_bits(gb, k - 1);

        }

    }

    return x;

}

static inline int FUNC_0(GetBitContext *VAR_0, int VAR_1, int VAR_2, int VAR_3){

    int VAR_4 = get_unary_0_9(VAR_0);



    if (VAR_4 > 8) { 

        

        VAR_4 = get_bits(VAR_0, VAR_3);

    } else {

        if (VAR_1 >= VAR_2)

            VAR_1 = VAR_2;



        if (VAR_1 != 1) {

            int VAR_5 = show_bits(VAR_0, VAR_1);



            

            VAR_4 = (VAR_4 << VAR_1) - VAR_4;



            if (VAR_5 > 1) {

                VAR_4 += VAR_5 - 1;

                skip_bits(VAR_0, VAR_1);

            } else

                skip_bits(VAR_0, VAR_1 - 1);

        }

    }

    return VAR_4;

}

static inline int FUNC_0(GetBitContext *VAR_0, int VAR_1, int VAR_2, int VAR_3){ int VAR_4 = get_unary_0_9(VAR_0); if (VAR_4 > 8) { VAR_4 = get_bits(VAR_0, VAR_3); } else { if (VAR_1 >= VAR_2)
VAR_1 = VAR_2; if (VAR_1 != 1) { int VAR_5 = show_bits(VAR_0, VAR_1); VAR_4 = (VAR_4 << VAR_1) - VAR_4; if (VAR_5 > 1) { VAR_4 += VAR_5 - 1; skip_bits(VAR_0, VAR_1); } else skip_bits(VAR_0, VAR_1 - 1); } } return VAR_4; }