package androidx.compose.runtime;

import androidx.compose.runtime.internal.StabilityInferred;
import java.util.Arrays;

/* JADX INFO: loaded from: classes.dex */
@StabilityInferred(parameters = 0)
public final class BitVector {
    public static final int $stable = 8;
    private long first;
    private long[] others = SlotTableKt.EmptyLongArray;
    private long second;

    private final int nextBit(int i6, J4.c cVar) {
        int iNumberOfTrailingZeros;
        if (i6 < 64 && (iNumberOfTrailingZeros = Long.numberOfTrailingZeros((((Number) cVar.invoke(Long.valueOf(this.first))).longValue() >>> i6) << i6)) < 64) {
            return iNumberOfTrailingZeros;
        }
        if (i6 < 128) {
            int i7 = i6 - 64;
            int iNumberOfTrailingZeros2 = Long.numberOfTrailingZeros((((Number) cVar.invoke(Long.valueOf(this.second))).longValue() >>> i7) << i7);
            if (iNumberOfTrailingZeros2 < 64) {
                return iNumberOfTrailingZeros2 + 64;
            }
        }
        int iMax = Math.max(i6, 128);
        int i8 = (iMax / 64) - 2;
        long[] jArr = this.others;
        int length = jArr.length;
        for (int i9 = i8; i9 < length; i9++) {
            long jLongValue = ((Number) cVar.invoke(Long.valueOf(jArr[i9]))).longValue();
            if (i9 == i8) {
                int i10 = iMax % 64;
                jLongValue = (jLongValue >>> i10) << i10;
            }
            int iNumberOfTrailingZeros3 = Long.numberOfTrailingZeros(jLongValue);
            if (iNumberOfTrailingZeros3 < 64) {
                return (i9 * 64) + 128 + iNumberOfTrailingZeros3;
            }
        }
        return Integer.MAX_VALUE;
    }

    public final boolean get(int i6) {
        int i7;
        if (i6 < 64) {
            return ((1 << i6) & this.first) != 0;
        }
        if (i6 < 128) {
            return ((1 << (i6 - 64)) & this.second) != 0;
        }
        long[] jArr = this.others;
        int length = jArr.length;
        if (length != 0 && (i6 / 64) - 2 < length) {
            return ((1 << (i6 % 64)) & jArr[i7]) != 0;
        }
        return false;
    }

    public final int getSize() {
        return (this.others.length + 2) * 64;
    }

    public final int nextClear(int i6) {
        int iNumberOfTrailingZeros;
        if (i6 < 64 && (iNumberOfTrailingZeros = Long.numberOfTrailingZeros(((~this.first) >>> i6) << i6)) < 64) {
            return iNumberOfTrailingZeros;
        }
        if (i6 < 128) {
            int i7 = i6 - 64;
            int iNumberOfTrailingZeros2 = Long.numberOfTrailingZeros(((~this.second) >>> i7) << i7);
            if (iNumberOfTrailingZeros2 < 64) {
                return iNumberOfTrailingZeros2 + 64;
            }
        }
        int iMax = Math.max(i6, 128);
        int i8 = (iMax / 64) - 2;
        long[] jArr = this.others;
        int length = jArr.length;
        for (int i9 = i8; i9 < length; i9++) {
            long j4 = ~jArr[i9];
            if (i9 == i8) {
                int i10 = iMax % 64;
                j4 = (j4 >>> i10) << i10;
            }
            int iNumberOfTrailingZeros3 = Long.numberOfTrailingZeros(j4);
            if (iNumberOfTrailingZeros3 < 64) {
                return (i9 * 64) + 128 + iNumberOfTrailingZeros3;
            }
        }
        return Integer.MAX_VALUE;
    }

    public final int nextSet(int i6) {
        int iNumberOfTrailingZeros;
        if (i6 < 64 && (iNumberOfTrailingZeros = Long.numberOfTrailingZeros((this.first >>> i6) << i6)) < 64) {
            return iNumberOfTrailingZeros;
        }
        if (i6 < 128) {
            int i7 = i6 - 64;
            int iNumberOfTrailingZeros2 = Long.numberOfTrailingZeros((this.second >>> i7) << i7);
            if (iNumberOfTrailingZeros2 < 64) {
                return iNumberOfTrailingZeros2 + 64;
            }
        }
        int iMax = Math.max(i6, 128);
        int i8 = (iMax / 64) - 2;
        long[] jArr = this.others;
        int length = jArr.length;
        for (int i9 = i8; i9 < length; i9++) {
            long j4 = jArr[i9];
            if (i9 == i8) {
                int i10 = iMax % 64;
                j4 = (j4 >>> i10) << i10;
            }
            int iNumberOfTrailingZeros3 = Long.numberOfTrailingZeros(j4);
            if (iNumberOfTrailingZeros3 < 64) {
                return (i9 * 64) + 128 + iNumberOfTrailingZeros3;
            }
        }
        return Integer.MAX_VALUE;
    }

    public final void set(int i6, boolean z6) {
        if (i6 < 64) {
            this.first = ((z6 ? 1L : 0L) << i6) | ((~(1 << i6)) & this.first);
            return;
        }
        if (i6 < 128) {
            this.second = ((z6 ? 1L : 0L) << i6) | ((~(1 << (i6 - 64))) & this.second);
            return;
        }
        int i7 = i6 / 64;
        int i8 = i7 - 2;
        int i9 = i6 % 64;
        long j4 = 1 << i9;
        long[] jArrCopyOf = this.others;
        if (i8 >= jArrCopyOf.length) {
            jArrCopyOf = Arrays.copyOf(jArrCopyOf, i7 - 1);
            kotlin.jvm.internal.o.g(jArrCopyOf, "copyOf(...)");
            this.others = jArrCopyOf;
        }
        jArrCopyOf[i8] = ((z6 ? 1L : 0L) << i9) | ((~j4) & jArrCopyOf[i8]);
    }

    public final void setRange(int i6, int i7) {
        long j4 = i6 < i7 ? -1L : 0L;
        this.first = (((((long) (i6 < 64 ? 1 : 0)) * j4) >>> (64 - (Math.min(64, i7) - i6))) << i6) | this.first;
        if (i7 > 64) {
            int iMax = Math.max(i6, 64);
            this.second = (((j4 * ((long) (iMax < 128 ? 1 : 0))) >>> (128 - (Math.min(128, i7) - iMax))) << iMax) | this.second;
            if (i7 > 128) {
                for (int iMax2 = Math.max(iMax, 128); iMax2 < i7; iMax2++) {
                    set(iMax2, true);
                }
            }
        }
    }

    public String toString() {
        StringBuilder sb = new StringBuilder("BitVector [");
        int size = getSize();
        boolean z6 = true;
        for (int i6 = 0; i6 < size; i6++) {
            if (get(i6)) {
                if (!z6) {
                    sb.append(", ");
                }
                sb.append(i6);
                z6 = false;
            }
        }
        sb.append(']');
        String string = sb.toString();
        kotlin.jvm.internal.o.g(string, "toString(...)");
        return string;
    }
}
