int Mode_profile_Core_1_Encoder(Bitstream* stream, const Mode_profile_Core_1* p)
{
    if (NormalBitstream(stream, MODE_PROFILE_CORE_1_CORE_BITSIZE))
    {
        if (Mode_profile_Core_1_UpperBitsNotSet(p))
        {
            //@ ghost const uint32_t pos = stream->bitpos;

            Bitstream_Write(stream, 15, p->D_MAMODE_k);
            Bitstream_Write(stream, 2,  p->M_MAMODE_k);
            Bitstream_Write(stream, 7,  p->V_MAMODE_k);
            Bitstream_Write(stream, 15, p->L_MAMODE_k);
            Bitstream_Write(stream, 15, p->L_ACKMAMODE_k);
            Bitstream_Write(stream, 1,  p->Q_MAMODE_k);


            //@ assert D_MAMODE_k:        EqualBits(stream, pos,       pos + 15,  p->D_MAMODE_k);
            //@ assert M_MAMODE_k:        EqualBits(stream, pos + 15,  pos + 17,  p->M_MAMODE_k);
            //@ assert V_MAMODE_k:        EqualBits(stream, pos + 17,  pos + 24,  p->V_MAMODE_k);
            //@ assert L_MAMODE_k:        EqualBits(stream, pos + 24,  pos + 39,  p->L_MAMODE_k);
            //@ assert L_ACKMAMODE_k:     EqualBits(stream, pos + 39,  pos + 54,  p->L_ACKMAMODE_k);
            //@ assert Q_MAMODE_k:        EqualBits(stream, pos + 54,  pos + 55,  p->Q_MAMODE_k);

            return 1;
        }
        else
        {
            return -2;
        }
    }
    else
    {
        return -1;
    }
}
int Mode_profile_UpperBitsNotSet(const Mode_profile_Core* p)
{
    bool status = true;

    status = status && UpperBitsNotSet64(p->Q_DIR,             2) ;
    status = status && UpperBitsNotSet64(p->L_PACKET,          13);
    status = status && UpperBitsNotSet64(p->Q_SCALE,           2) ;
    status = status && UpperBitsNotSet64(p->D_MAMODE,          15);
    status = status && UpperBitsNotSet64(p->M_MAMODE,          2) ;
    status = status && UpperBitsNotSet64(p->V_MAMODE,          7) ;
    status = status && UpperBitsNotSet64(p->L_MAMODE,          15);
    status = status && UpperBitsNotSet64(p->L_ACKMAMODE,       15);
    status = status && UpperBitsNotSet64(p->N_ITER_1,          5) ;
    for (uint32_t i = 0; i < p->N_ITER_1; ++i)
    {
        status = status && Mode_profile_Core_1_UpperBitsNotSet(&(p->sub_1[i]));
    }

    if (status)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}