/* How many 0 bits are there at least significant end of Uint32. Low performance, do not call often.  */
static int free_bits_at_bottom(Uint32 a)
/* How many 0 bits are there at least significant end of Uint32. Low performance, do not call often.  */
static int free_bits_at_bottom(Uint32 a)
{
    if(!a) return sizeof(Uint32) * 8;
    if(((Sint32)a) & 1l) return 0;
    return 1 + free_bits_at_bottom ( a >> 1);
}