翰林优商.apk(点击下载) / Buffer.java


package com.czhj.wire.okio;

import com.kwai.video.player.KsMediaMeta;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.sigmob.sdk.archives.tar.e;
import com.umeng.analytics.pro.cb;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import kotlin.UByte;
import kotlin.jvm.internal.ByteCompanionObject;
import okhttp3.internal.connection.RealConnection;
import okio.Utf8;
import okio.internal.BufferKt;

public final class Buffer implements BufferedSink, BufferedSource, Cloneable {
    static final int a = 65533;
    private static final byte[] d = {e.H, e.I, e.J, e.f133K, e.L, e.M, e.N, e.O, 56, 57, 97, 98, 99, 100, 101, 102};
    Segment b;
    long c;

    private ByteString a(String str) {
        try {
            MessageDigest instance = MessageDigest.getInstance(str);
            instance.update(this.b.c, this.b.d, this.b.e - this.b.d);
            Segment segment = this.b;
            while (true) {
                segment = segment.h;
                if (segment == this.b) {
                    return ByteString.of(instance.digest());
                }
                instance.update(segment.c, segment.d, segment.e - segment.d);
            }
        } catch (NoSuchAlgorithmException unused) {
            throw new AssertionError();
        }
    }

    private void a(InputStream inputStream, long j, boolean z) throws IOException {
        if (inputStream != null) {
            while (true) {
                if (j > 0 || z) {
                    Segment a2 = a(1);
                    int read = inputStream.read(a2.c, a2.e, (int) Math.min(j, (long) (8192 - a2.e)));
                    if (read != -1) {
                        a2.e += read;
                        long j2 = (long) read;
                        this.c += j2;
                        j -= j2;
                    } else if (!z) {
                        throw new EOFException();
                    } else {
                        return;
                    }
                } else {
                    return;
                }
            }
        } else {
            throw new IllegalArgumentException("in == null");
        }
    }

    private boolean a(Segment segment, int i, ByteString byteString, int i2, int i3) {
        int i4 = segment.e;
        byte[] bArr = segment.c;
        while (i2 < i3) {
            if (i == i4) {
                segment = segment.h;
                byte[] bArr2 = segment.c;
                bArr = bArr2;
                i = segment.d;
                i4 = segment.e;
            }
            if (bArr[i] != byteString.getByte(i2)) {
                return false;
            }
            i++;
            i2++;
        }
        return true;
    }

    /* access modifiers changed from: package-private */
    public int a(Options options) {
        Segment segment = this.b;
        ByteString[] byteStringArr = options.a;
        int length = byteStringArr.length;
        for (int i = 0; i < length; i++) {
            ByteString byteString = byteStringArr[i];
            int min = (int) Math.min(this.c, (long) byteString.size());
            if (min == 0 || a(segment, segment.d, byteString, 0, min)) {
                return i;
            }
        }
        return -1;
    }

    /* access modifiers changed from: package-private */
    public Segment a(int i) {
        if (i < 1 || i > 8192) {
            throw new IllegalArgumentException();
        }
        Segment segment = this.b;
        if (segment == null) {
            Segment a2 = SegmentPool.a();
            this.b = a2;
            a2.i = a2;
            a2.h = a2;
            return a2;
        }
        Segment segment2 = segment.i;
        return (segment2.e + i > 8192 || !segment2.g) ? segment2.push(SegmentPool.a()) : segment2;
    }

    /* access modifiers changed from: package-private */
    public String a(long j) throws EOFException {
        String readUtf8;
        long j2 = 1;
        if (j > 0) {
            long j3 = j - 1;
            if (getByte(j3) == 13) {
                readUtf8 = readUtf8(j3);
                j2 = 2;
                skip(j2);
                return readUtf8;
            }
        }
        readUtf8 = readUtf8(j);
        skip(j2);
        return readUtf8;
    }

    /* access modifiers changed from: package-private */
    public List<Integer> a() {
        if (this.b == null) {
            return Collections.emptyList();
        }
        ArrayList arrayList = new ArrayList();
        arrayList.add(Integer.valueOf(this.b.e - this.b.d));
        Segment segment = this.b;
        while (true) {
            segment = segment.h;
            if (segment == this.b) {
                return arrayList;
            }
            arrayList.add(Integer.valueOf(segment.e - segment.d));
        }
    }

    /* access modifiers changed from: package-private */
    public boolean a(long j, ByteString byteString) {
        int size = byteString.size();
        if (this.c - j < ((long) size)) {
            return false;
        }
        for (int i = 0; i < size; i++) {
            if (getByte(((long) i) + j) != byteString.getByte(i)) {
                return false;
            }
        }
        return true;
    }

    @Override // com.czhj.wire.okio.BufferedSource, com.czhj.wire.okio.BufferedSink
    public Buffer buffer() {
        return this;
    }

    public void clear() {
        try {
            skip(this.c);
        } catch (EOFException e) {
            throw new AssertionError(e);
        }
    }

    @Override // java.lang.Object
    public Buffer clone() {
        Buffer buffer = new Buffer();
        if (this.c == 0) {
            return buffer;
        }
        Segment segment = new Segment(this.b);
        buffer.b = segment;
        segment.i = segment;
        segment.h = segment;
        Segment segment2 = this.b;
        while (true) {
            segment2 = segment2.h;
            if (segment2 != this.b) {
                buffer.b.i.push(new Segment(segment2));
            } else {
                buffer.c = this.c;
                return buffer;
            }
        }
    }

    @Override // com.czhj.wire.okio.Sink, java.io.Closeable, com.czhj.wire.okio.Source, java.lang.AutoCloseable
    public void close() {
    }

    public long completeSegmentByteCount() {
        long j = this.c;
        if (j == 0) {
            return 0;
        }
        Segment segment = this.b.i;
        return (segment.e >= 8192 || !segment.g) ? j : j - ((long) (segment.e - segment.d));
    }

    public Buffer copyTo(Buffer buffer, long j, long j2) {
        if (buffer != null) {
            Util.checkOffsetAndCount(this.c, j, j2);
            if (j2 == 0) {
                return this;
            }
            buffer.c += j2;
            Segment segment = this.b;
            while (j >= ((long) (segment.e - segment.d))) {
                j -= (long) (segment.e - segment.d);
                segment = segment.h;
            }
            while (j2 > 0) {
                Segment segment2 = new Segment(segment);
                segment2.d = (int) (((long) segment2.d) + j);
                segment2.e = Math.min(segment2.d + ((int) j2), segment2.e);
                Segment segment3 = buffer.b;
                if (segment3 == null) {
                    segment2.i = segment2;
                    segment2.h = segment2;
                    buffer.b = segment2;
                } else {
                    segment3.i.push(segment2);
                }
                j2 -= (long) (segment2.e - segment2.d);
                segment = segment.h;
                j = 0;
            }
            return this;
        }
        throw new IllegalArgumentException("out == null");
    }

    public Buffer copyTo(OutputStream outputStream) throws IOException {
        return copyTo(outputStream, 0, this.c);
    }

    public Buffer copyTo(OutputStream outputStream, long j, long j2) throws IOException {
        if (outputStream != null) {
            Util.checkOffsetAndCount(this.c, j, j2);
            if (j2 == 0) {
                return this;
            }
            Segment segment = this.b;
            while (j >= ((long) (segment.e - segment.d))) {
                j -= (long) (segment.e - segment.d);
                segment = segment.h;
            }
            while (j2 > 0) {
                int i = (int) (((long) segment.d) + j);
                int min = (int) Math.min((long) (segment.e - i), j2);
                outputStream.write(segment.c, i, min);
                j2 -= (long) min;
                segment = segment.h;
                j = 0;
            }
            return this;
        }
        throw new IllegalArgumentException("out == null");
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public BufferedSink emit() {
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer emitCompleteSegments() {
        return this;
    }

    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof Buffer)) {
            return false;
        }
        Buffer buffer = (Buffer) obj;
        long j = this.c;
        if (j != buffer.c) {
            return false;
        }
        long j2 = 0;
        if (j == 0) {
            return true;
        }
        Segment segment = this.b;
        Segment segment2 = buffer.b;
        int i = segment.d;
        int i2 = segment2.d;
        while (j2 < this.c) {
            long min = (long) Math.min(segment.e - i, segment2.e - i2);
            int i3 = 0;
            while (((long) i3) < min) {
                int i4 = i + 1;
                int i5 = i2 + 1;
                if (segment.c[i] != segment2.c[i2]) {
                    return false;
                }
                i3++;
                i = i4;
                i2 = i5;
            }
            if (i == segment.e) {
                segment = segment.h;
                i = segment.d;
            }
            if (i2 == segment2.e) {
                segment2 = segment2.h;
                i2 = segment2.d;
            }
            j2 += min;
        }
        return true;
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public boolean exhausted() {
        return this.c == 0;
    }

    @Override // com.czhj.wire.okio.Sink, com.czhj.wire.okio.BufferedSink, java.io.Flushable
    public void flush() {
    }

    public byte getByte(long j) {
        Util.checkOffsetAndCount(this.c, j, 1);
        Segment segment = this.b;
        while (true) {
            long j2 = (long) (segment.e - segment.d);
            if (j < j2) {
                return segment.c[segment.d + ((int) j)];
            }
            j -= j2;
            segment = segment.h;
        }
    }

    public int hashCode() {
        Segment segment = this.b;
        if (segment == null) {
            return 0;
        }
        int i = 1;
        do {
            int i2 = segment.e;
            for (int i3 = segment.d; i3 < i2; i3++) {
                i = (i * 31) + segment.c[i3];
            }
            segment = segment.h;
        } while (segment != this.b);
        return i;
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long indexOf(byte b2) {
        return indexOf(b2, 0);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long indexOf(byte b2, long j) {
        long j2 = 0;
        if (j >= 0) {
            Segment segment = this.b;
            if (segment == null) {
                return -1;
            }
            long j3 = this.c;
            if (j3 - j < j) {
                while (j3 > j) {
                    segment = segment.i;
                    j3 -= (long) (segment.e - segment.d);
                }
            } else {
                while (true) {
                    long j4 = ((long) (segment.e - segment.d)) + j2;
                    if (j4 >= j) {
                        break;
                    }
                    segment = segment.h;
                    j2 = j4;
                }
                j3 = j2;
            }
            while (j3 < this.c) {
                byte[] bArr = segment.c;
                int i = segment.e;
                for (int i2 = (int) ((((long) segment.d) + j) - j3); i2 < i; i2++) {
                    if (bArr[i2] == b2) {
                        return ((long) (i2 - segment.d)) + j3;
                    }
                }
                j3 += (long) (segment.e - segment.d);
                segment = segment.h;
                j = j3;
            }
            return -1;
        }
        throw new IllegalArgumentException("fromIndex < 0");
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long indexOf(ByteString byteString) throws IOException {
        return indexOf(byteString, 0);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long indexOf(ByteString byteString, long j) throws IOException {
        byte[] bArr;
        if (byteString.size() != 0) {
            long j2 = 0;
            if (j >= 0) {
                Segment segment = this.b;
                long j3 = -1;
                if (segment == null) {
                    return -1;
                }
                long j4 = this.c;
                if (j4 - j < j) {
                    while (j4 > j) {
                        segment = segment.i;
                        j4 -= (long) (segment.e - segment.d);
                    }
                } else {
                    while (true) {
                        long j5 = ((long) (segment.e - segment.d)) + j2;
                        if (j5 >= j) {
                            break;
                        }
                        segment = segment.h;
                        j2 = j5;
                    }
                    j4 = j2;
                }
                byte b2 = byteString.getByte(0);
                int size = byteString.size();
                long j6 = 1 + (this.c - ((long) size));
                long j7 = j;
                Segment segment2 = segment;
                long j8 = j4;
                while (j8 < j6) {
                    byte[] bArr2 = segment2.c;
                    int min = (int) Math.min((long) segment2.e, (((long) segment2.d) + j6) - j8);
                    int i = (int) ((((long) segment2.d) + j7) - j8);
                    while (i < min) {
                        if (bArr2[i] == b2) {
                            bArr = bArr2;
                            if (a(segment2, i + 1, byteString, 1, size)) {
                                return ((long) (i - segment2.d)) + j8;
                            }
                        } else {
                            bArr = bArr2;
                        }
                        i++;
                        bArr2 = bArr;
                    }
                    j8 += (long) (segment2.e - segment2.d);
                    segment2 = segment2.h;
                    j7 = j8;
                    j3 = -1;
                }
                return j3;
            }
            throw new IllegalArgumentException("fromIndex < 0");
        }
        throw new IllegalArgumentException("bytes is empty");
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long indexOfElement(ByteString byteString) {
        return indexOfElement(byteString, 0);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long indexOfElement(ByteString byteString, long j) {
        int i;
        long j2 = 0;
        if (j >= 0) {
            Segment segment = this.b;
            if (segment == null) {
                return -1;
            }
            long j3 = this.c;
            if (j3 - j < j) {
                while (j3 > j) {
                    segment = segment.i;
                    j3 -= (long) (segment.e - segment.d);
                }
            } else {
                while (true) {
                    long j4 = ((long) (segment.e - segment.d)) + j2;
                    if (j4 >= j) {
                        break;
                    }
                    segment = segment.h;
                    j2 = j4;
                }
                j3 = j2;
            }
            if (byteString.size() == 2) {
                byte b2 = byteString.getByte(0);
                byte b3 = byteString.getByte(1);
                while (j3 < this.c) {
                    byte[] bArr = segment.c;
                    i = (int) ((((long) segment.d) + j) - j3);
                    int i2 = segment.e;
                    while (i < i2) {
                        byte b4 = bArr[i];
                        if (!(b4 == b2 || b4 == b3)) {
                            i++;
                        }
                    }
                    j3 += (long) (segment.e - segment.d);
                    segment = segment.h;
                    j = j3;
                }
                return -1;
            }
            byte[] a2 = byteString.a();
            while (j3 < this.c) {
                byte[] bArr2 = segment.c;
                i = (int) ((((long) segment.d) + j) - j3);
                int i3 = segment.e;
                while (i < i3) {
                    byte b5 = bArr2[i];
                    for (byte b6 : a2) {
                        if (b5 != b6) {
                        }
                    }
                    i++;
                }
                j3 += (long) (segment.e - segment.d);
                segment = segment.h;
                j = j3;
            }
            return -1;
            return ((long) (i - segment.d)) + j3;
        }
        throw new IllegalArgumentException("fromIndex < 0");
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public InputStream inputStream() {
        return new InputStream() {
            /* class com.czhj.wire.okio.Buffer.AnonymousClass2 */

            @Override // java.io.InputStream
            public int available() {
                return (int) Math.min(Buffer.this.c, 2147483647L);
            }

            @Override // java.io.Closeable, java.lang.AutoCloseable, java.io.InputStream
            public void close() {
            }

            @Override // java.io.InputStream
            public int read() {
                if (Buffer.this.c > 0) {
                    return Buffer.this.readByte() & UByte.MAX_VALUE;
                }
                return -1;
            }

            @Override // java.io.InputStream
            public int read(byte[] bArr, int i, int i2) {
                return Buffer.this.read(bArr, i, i2);
            }

            public String toString() {
                return Buffer.this + ".inputStream()";
            }
        };
    }

    public ByteString md5() {
        return a("MD5");
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public OutputStream outputStream() {
        return new OutputStream() {
            /* class com.czhj.wire.okio.Buffer.AnonymousClass1 */

            @Override // java.io.OutputStream, java.io.Closeable, java.lang.AutoCloseable
            public void close() {
            }

            @Override // java.io.OutputStream, java.io.Flushable
            public void flush() {
            }

            public String toString() {
                return this + ".outputStream()";
            }

            @Override // java.io.OutputStream
            public void write(int i) {
                Buffer.this.writeByte((int) ((byte) i));
            }

            @Override // java.io.OutputStream
            public void write(byte[] bArr, int i, int i2) {
                Buffer.this.write(bArr, i, i2);
            }
        };
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public int read(byte[] bArr) {
        return read(bArr, 0, bArr.length);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public int read(byte[] bArr, int i, int i2) {
        Util.checkOffsetAndCount((long) bArr.length, (long) i, (long) i2);
        Segment segment = this.b;
        if (segment == null) {
            return -1;
        }
        int min = Math.min(i2, segment.e - segment.d);
        System.arraycopy(segment.c, segment.d, bArr, i, min);
        segment.d += min;
        this.c -= (long) min;
        if (segment.d == segment.e) {
            this.b = segment.pop();
            SegmentPool.a(segment);
        }
        return min;
    }

    @Override // com.czhj.wire.okio.Source
    public long read(Buffer buffer, long j) {
        if (buffer == null) {
            throw new IllegalArgumentException("sink == null");
        } else if (j >= 0) {
            long j2 = this.c;
            if (j2 == 0) {
                return -1;
            }
            if (j > j2) {
                j = j2;
            }
            buffer.write(this, j);
            return j;
        } else {
            throw new IllegalArgumentException("byteCount < 0: " + j);
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long readAll(Sink sink) throws IOException {
        long j = this.c;
        if (j > 0) {
            sink.write(this, j);
        }
        return j;
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public byte readByte() {
        if (this.c != 0) {
            Segment segment = this.b;
            int i = segment.d;
            int i2 = segment.e;
            int i3 = i + 1;
            byte b2 = segment.c[i];
            this.c--;
            if (i3 == i2) {
                this.b = segment.pop();
                SegmentPool.a(segment);
            } else {
                segment.d = i3;
            }
            return b2;
        }
        throw new IllegalStateException("size == 0");
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public byte[] readByteArray() {
        try {
            return readByteArray(this.c);
        } catch (EOFException e) {
            throw new AssertionError(e);
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public byte[] readByteArray(long j) throws EOFException {
        Util.checkOffsetAndCount(this.c, 0, j);
        if (j <= 2147483647L) {
            byte[] bArr = new byte[((int) j)];
            readFully(bArr);
            return bArr;
        }
        throw new IllegalArgumentException("byteCount > Integer.MAX_VALUE: " + j);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public ByteString readByteString() {
        return new ByteString(readByteArray());
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public ByteString readByteString(long j) throws EOFException {
        return new ByteString(readByteArray(j));
    }

    /* JADX WARNING: Code restructure failed: missing block: B:37:0x00bf, code lost:
        if (r8 == false) goto L_0x00c2;
     */
    /* JADX WARNING: Code restructure failed: missing block: B:51:?, code lost:
        return -r3;
     */
    /* JADX WARNING: Code restructure failed: missing block: B:52:?, code lost:
        return r3;
     */
    @Override // com.czhj.wire.okio.BufferedSource
    public long readDecimalLong() {
        byte b2;
        long j = 0;
        if (this.c != 0) {
            long j2 = BufferKt.OVERFLOW_ZONE;
            long j3 = -7;
            int i = 0;
            boolean z = false;
            boolean z2 = false;
            loop0:
            while (true) {
                Segment segment = this.b;
                byte[] bArr = segment.c;
                int i2 = segment.d;
                int i3 = segment.e;
                while (true) {
                    if (i2 >= i3) {
                        break;
                    }
                    b2 = bArr[i2];
                    if (b2 >= 48 && b2 <= 57) {
                        int i4 = 48 - b2;
                        int i5 = (j > j2 ? 1 : (j == j2 ? 0 : -1));
                        if (i5 < 0 || (i5 == 0 && ((long) i4) < j3)) {
                            Buffer writeByte = new Buffer().writeDecimalLong(j).writeByte((int) b2);
                        } else {
                            j = (j * 10) + ((long) i4);
                        }
                    } else if (b2 == 45 && i == 0) {
                        j3--;
                        z = true;
                    } else if (i != 0) {
                        z2 = true;
                    } else {
                        throw new NumberFormatException("Expected leading [0-9] or '-' character but was 0x" + Integer.toHexString(b2));
                    }
                    i2++;
                    i++;
                    j2 = BufferKt.OVERFLOW_ZONE;
                }
                if (i2 == i3) {
                    this.b = segment.pop();
                    SegmentPool.a(segment);
                } else {
                    segment.d = i2;
                }
                if (z2 || this.b == null) {
                    this.c -= (long) i;
                } else {
                    j2 = BufferKt.OVERFLOW_ZONE;
                }
            }
            Buffer writeByte2 = new Buffer().writeDecimalLong(j).writeByte((int) b2);
            if (!z) {
                writeByte2.readByte();
            }
            throw new NumberFormatException("Number too large: " + writeByte2.readUtf8());
        }
        throw new IllegalStateException("size == 0");
    }

    public Buffer readFrom(InputStream inputStream) throws IOException {
        a(inputStream, Long.MAX_VALUE, true);
        return this;
    }

    public Buffer readFrom(InputStream inputStream, long j) throws IOException {
        if (j >= 0) {
            a(inputStream, j, false);
            return this;
        }
        throw new IllegalArgumentException("byteCount < 0: " + j);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public void readFully(Buffer buffer, long j) throws EOFException {
        long j2 = this.c;
        if (j2 >= j) {
            buffer.write(this, j);
        } else {
            buffer.write(this, j2);
            throw new EOFException();
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public void readFully(byte[] bArr) throws EOFException {
        int i = 0;
        while (i < bArr.length) {
            int read = read(bArr, i, bArr.length - i);
            if (read != -1) {
                i += read;
            } else {
                throw new EOFException();
            }
        }
    }

    /* JADX WARNING: Code restructure failed: missing block: B:30:0x0091, code lost:
        if (r8 != r9) goto L_0x009d;
     */
    /* JADX WARNING: Code restructure failed: missing block: B:31:0x0093, code lost:
        r15.b = r6.pop();
        com.czhj.wire.okio.SegmentPool.a(r6);
     */
    /* JADX WARNING: Code restructure failed: missing block: B:32:0x009d, code lost:
        r6.d = r8;
     */
    /* JADX WARNING: Code restructure failed: missing block: B:33:0x009f, code lost:
        if (r1 != false) goto L_0x00a5;
     */
    /* JADX WARNING: Removed duplicated region for block: B:27:0x0074  */
    /* JADX WARNING: Removed duplicated region for block: B:42:0x0076 A[SYNTHETIC] */
    @Override // com.czhj.wire.okio.BufferedSource
    public long readHexadecimalUnsignedLong() {
        int i;
        int i2;
        if (this.c != 0) {
            int i3 = 0;
            long j = 0;
            boolean z = false;
            do {
                Segment segment = this.b;
                byte[] bArr = segment.c;
                int i4 = segment.d;
                int i5 = segment.e;
                while (true) {
                    if (i4 >= i5) {
                        break;
                    }
                    byte b2 = bArr[i4];
                    if (b2 < 48 || b2 > 57) {
                        if (b2 >= 97 && b2 <= 102) {
                            i2 = b2 - 97;
                        } else if (b2 >= 65 && b2 <= 70) {
                            i2 = b2 - 65;
                        } else if (i3 == 0) {
                            z = true;
                        } else {
                            throw new NumberFormatException("Expected leading [0-9a-fA-F] character but was 0x" + Integer.toHexString(b2));
                        }
                        i = i2 + 10;
                    } else {
                        i = b2 - 48;
                    }
                    if ((-1152921504606846976L & j) == 0) {
                        j = (j << 4) | ((long) i);
                        i4++;
                        i3++;
                    } else {
                        Buffer writeByte = new Buffer().writeHexadecimalUnsignedLong(j).writeByte((int) b2);
                        throw new NumberFormatException("Number too large: " + writeByte.readUtf8());
                    }
                }
                if (i3 == 0) {
                }
            } while (this.b != null);
            this.c -= (long) i3;
            return j;
        }
        throw new IllegalStateException("size == 0");
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public int readInt() {
        if (this.c >= 4) {
            Segment segment = this.b;
            int i = segment.d;
            int i2 = segment.e;
            if (i2 - i < 4) {
                return ((readByte() & UByte.MAX_VALUE) << 24) | ((readByte() & UByte.MAX_VALUE) << 16) | ((readByte() & UByte.MAX_VALUE) << 8) | (readByte() & UByte.MAX_VALUE);
            }
            byte[] bArr = segment.c;
            int i3 = i + 1;
            int i4 = i3 + 1;
            int i5 = ((bArr[i] & UByte.MAX_VALUE) << 24) | ((bArr[i3] & UByte.MAX_VALUE) << 16);
            int i6 = i4 + 1;
            int i7 = i5 | ((bArr[i4] & UByte.MAX_VALUE) << 8);
            int i8 = i6 + 1;
            int i9 = i7 | (bArr[i6] & UByte.MAX_VALUE);
            this.c -= 4;
            if (i8 == i2) {
                this.b = segment.pop();
                SegmentPool.a(segment);
            } else {
                segment.d = i8;
            }
            return i9;
        }
        throw new IllegalStateException("size < 4: " + this.c);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public int readIntLe() {
        return Util.reverseBytesInt(readInt());
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long readLong() {
        if (this.c >= 8) {
            Segment segment = this.b;
            int i = segment.d;
            int i2 = segment.e;
            if (i2 - i < 8) {
                return ((((long) readInt()) & 4294967295L) << 32) | (4294967295L & ((long) readInt()));
            }
            byte[] bArr = segment.c;
            int i3 = i + 1;
            int i4 = i3 + 1;
            int i5 = i4 + 1;
            int i6 = i5 + 1;
            int i7 = i6 + 1;
            int i8 = i7 + 1;
            int i9 = i8 + 1;
            int i10 = i9 + 1;
            long j = (((long) bArr[i9]) & 255) | ((((long) bArr[i]) & 255) << 56) | ((((long) bArr[i3]) & 255) << 48) | ((((long) bArr[i4]) & 255) << 40) | ((((long) bArr[i5]) & 255) << 32) | ((((long) bArr[i6]) & 255) << 24) | ((((long) bArr[i7]) & 255) << 16) | ((((long) bArr[i8]) & 255) << 8);
            this.c -= 8;
            if (i10 == i2) {
                this.b = segment.pop();
                SegmentPool.a(segment);
            } else {
                segment.d = i10;
            }
            return j;
        }
        throw new IllegalStateException("size < 8: " + this.c);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public long readLongLe() {
        return Util.reverseBytesLong(readLong());
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public short readShort() {
        if (this.c >= 2) {
            Segment segment = this.b;
            int i = segment.d;
            int i2 = segment.e;
            if (i2 - i < 2) {
                return (short) (((readByte() & UByte.MAX_VALUE) << 8) | (readByte() & UByte.MAX_VALUE));
            }
            byte[] bArr = segment.c;
            int i3 = i + 1;
            int i4 = i3 + 1;
            int i5 = ((bArr[i] & UByte.MAX_VALUE) << 8) | (bArr[i3] & UByte.MAX_VALUE);
            this.c -= 2;
            if (i4 == i2) {
                this.b = segment.pop();
                SegmentPool.a(segment);
            } else {
                segment.d = i4;
            }
            return (short) i5;
        }
        throw new IllegalStateException("size < 2: " + this.c);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public short readShortLe() {
        return Util.reverseBytesShort(readShort());
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public String readString(long j, Charset charset) throws EOFException {
        Util.checkOffsetAndCount(this.c, 0, j);
        if (charset == null) {
            throw new IllegalArgumentException("charset == null");
        } else if (j > 2147483647L) {
            throw new IllegalArgumentException("byteCount > Integer.MAX_VALUE: " + j);
        } else if (j == 0) {
            return "";
        } else {
            Segment segment = this.b;
            if (((long) segment.d) + j > ((long) segment.e)) {
                return new String(readByteArray(j), charset);
            }
            String str = new String(segment.c, segment.d, (int) j, charset);
            segment.d = (int) (((long) segment.d) + j);
            this.c -= j;
            if (segment.d == segment.e) {
                this.b = segment.pop();
                SegmentPool.a(segment);
            }
            return str;
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public String readString(Charset charset) {
        try {
            return readString(this.c, charset);
        } catch (EOFException e) {
            throw new AssertionError(e);
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public String readUtf8() {
        try {
            return readString(this.c, Util.UTF_8);
        } catch (EOFException e) {
            throw new AssertionError(e);
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public String readUtf8(long j) throws EOFException {
        return readString(j, Util.UTF_8);
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public int readUtf8CodePoint() throws EOFException {
        int i;
        int i2;
        int i3;
        if (this.c != 0) {
            byte b2 = getByte(0);
            if ((b2 & ByteCompanionObject.MIN_VALUE) == 0) {
                i3 = b2 & ByteCompanionObject.MAX_VALUE;
                i2 = 1;
                i = 0;
            } else if ((b2 & 224) == 192) {
                i3 = b2 & 31;
                i2 = 2;
                i = 128;
            } else if ((b2 & 240) == 224) {
                i3 = b2 & cb.m;
                i2 = 3;
                i = 2048;
            } else if ((b2 & 248) == 240) {
                i3 = b2 & 7;
                i2 = 4;
                i = 65536;
            } else {
                skip(1);
                return 65533;
            }
            long j = (long) i2;
            if (this.c >= j) {
                for (int i4 = 1; i4 < i2; i4++) {
                    long j2 = (long) i4;
                    byte b3 = getByte(j2);
                    if ((b3 & 192) == 128) {
                        i3 = (i3 << 6) | (b3 & Utf8.REPLACEMENT_BYTE);
                    } else {
                        skip(j2);
                        return 65533;
                    }
                }
                skip(j);
                if (i3 > 1114111) {
                    return 65533;
                }
                if ((i3 < 55296 || i3 > 57343) && i3 >= i) {
                    return i3;
                }
                return 65533;
            }
            throw new EOFException("size < " + i2 + ": " + this.c + " (to read code point prefixed 0x" + Integer.toHexString(b2) + ")");
        }
        throw new EOFException();
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public String readUtf8Line() throws EOFException {
        long indexOf = indexOf((byte) 10);
        if (indexOf != -1) {
            return a(indexOf);
        }
        long j = this.c;
        if (j != 0) {
            return readUtf8(j);
        }
        return null;
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public String readUtf8LineStrict() throws EOFException {
        long indexOf = indexOf((byte) 10);
        if (indexOf != -1) {
            return a(indexOf);
        }
        Buffer buffer = new Buffer();
        copyTo(buffer, 0, Math.min(32L, this.c));
        throw new EOFException("\\n not found: size=" + size() + " content=" + buffer.readByteString().hex() + "…");
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public boolean request(long j) {
        return this.c >= j;
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public void require(long j) throws EOFException {
        if (this.c < j) {
            throw new EOFException();
        }
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public int select(Options options) {
        Segment segment = this.b;
        if (segment == null) {
            return options.indexOf(ByteString.EMPTY);
        }
        ByteString[] byteStringArr = options.a;
        int length = byteStringArr.length;
        for (int i = 0; i < length; i++) {
            ByteString byteString = byteStringArr[i];
            if (this.c >= ((long) byteString.size()) && a(segment, segment.d, byteString, 0, byteString.size())) {
                try {
                    skip((long) byteString.size());
                    return i;
                } catch (EOFException e) {
                    throw new AssertionError(e);
                }
            }
        }
        return -1;
    }

    public ByteString sha1() {
        return a("SHA-1");
    }

    public ByteString sha256() {
        return a("SHA-256");
    }

    public long size() {
        return this.c;
    }

    @Override // com.czhj.wire.okio.BufferedSource
    public void skip(long j) throws EOFException {
        while (j > 0) {
            Segment segment = this.b;
            if (segment != null) {
                int min = (int) Math.min(j, (long) (segment.e - this.b.d));
                long j2 = (long) min;
                this.c -= j2;
                j -= j2;
                this.b.d += min;
                if (this.b.d == this.b.e) {
                    Segment segment2 = this.b;
                    this.b = segment2.pop();
                    SegmentPool.a(segment2);
                }
            } else {
                throw new EOFException();
            }
        }
    }

    public ByteString snapshot() {
        long j = this.c;
        if (j <= 2147483647L) {
            return snapshot((int) j);
        }
        throw new IllegalArgumentException("size > Integer.MAX_VALUE: " + this.c);
    }

    public ByteString snapshot(int i) {
        return i == 0 ? ByteString.EMPTY : new SegmentedByteString(this, i);
    }

    @Override // com.czhj.wire.okio.Sink, com.czhj.wire.okio.Source
    public Timeout timeout() {
        return Timeout.NONE;
    }

    public String toString() {
        return snapshot().toString();
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer write(ByteString byteString) {
        if (byteString != null) {
            byteString.a(this);
            return this;
        }
        throw new IllegalArgumentException("byteString == null");
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer write(byte[] bArr) {
        if (bArr != null) {
            return write(bArr, 0, bArr.length);
        }
        throw new IllegalArgumentException("source == null");
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer write(byte[] bArr, int i, int i2) {
        if (bArr != null) {
            long j = (long) i2;
            Util.checkOffsetAndCount((long) bArr.length, (long) i, j);
            int i3 = i2 + i;
            while (i < i3) {
                Segment a2 = a(1);
                int min = Math.min(i3 - i, 8192 - a2.e);
                System.arraycopy(bArr, i, a2.c, a2.e, min);
                i += min;
                a2.e += min;
            }
            this.c += j;
            return this;
        }
        throw new IllegalArgumentException("source == null");
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public BufferedSink write(Source source, long j) throws IOException {
        while (j > 0) {
            long read = source.read(this, j);
            if (read != -1) {
                j -= read;
            } else {
                throw new EOFException();
            }
        }
        return this;
    }

    @Override // com.czhj.wire.okio.Sink
    public void write(Buffer buffer, long j) {
        if (buffer == null) {
            throw new IllegalArgumentException("source == null");
        } else if (buffer != this) {
            Util.checkOffsetAndCount(buffer.c, 0, j);
            while (j > 0) {
                if (j < ((long) (buffer.b.e - buffer.b.d))) {
                    Segment segment = this.b;
                    Segment segment2 = segment != null ? segment.i : null;
                    if (segment2 != null && segment2.g) {
                        if ((((long) segment2.e) + j) - ((long) (segment2.f ? 0 : segment2.d)) <= KsMediaMeta.AV_CH_TOP_FRONT_CENTER) {
                            buffer.b.writeTo(segment2, (int) j);
                            buffer.c -= j;
                            this.c += j;
                            return;
                        }
                    }
                    buffer.b = buffer.b.split((int) j);
                }
                Segment segment3 = buffer.b;
                long j2 = (long) (segment3.e - segment3.d);
                buffer.b = segment3.pop();
                Segment segment4 = this.b;
                if (segment4 == null) {
                    this.b = segment3;
                    segment3.i = segment3;
                    segment3.h = segment3;
                } else {
                    segment4.i.push(segment3).compact();
                }
                buffer.c -= j2;
                this.c += j2;
                j -= j2;
            }
        } else {
            throw new IllegalArgumentException("source == this");
        }
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public long writeAll(Source source) throws IOException {
        if (source != null) {
            long j = 0;
            while (true) {
                long read = source.read(this, KsMediaMeta.AV_CH_TOP_FRONT_CENTER);
                if (read == -1) {
                    return j;
                }
                j += read;
            }
        } else {
            throw new IllegalArgumentException("source == null");
        }
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeByte(int i) {
        Segment a2 = a(1);
        byte[] bArr = a2.c;
        int i2 = a2.e;
        a2.e = i2 + 1;
        bArr[i2] = (byte) i;
        this.c++;
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeDecimalLong(long j) {
        int i = (j > 0 ? 1 : (j == 0 ? 0 : -1));
        if (i == 0) {
            return writeByte(48);
        }
        boolean z = false;
        int i2 = 1;
        if (i < 0) {
            j = -j;
            if (j < 0) {
                return writeUtf8("-9223372036854775808");
            }
            z = true;
        }
        if (j >= 100000000) {
            i2 = j < 1000000000000L ? j < RealConnection.IDLE_CONNECTION_HEALTHY_NS ? j < C.NANOS_PER_SECOND ? 9 : 10 : j < 100000000000L ? 11 : 12 : j < 1000000000000000L ? j < 10000000000000L ? 13 : j < 100000000000000L ? 14 : 15 : j < 100000000000000000L ? j < 10000000000000000L ? 16 : 17 : j < 1000000000000000000L ? 18 : 19;
        } else if (j >= 10000) {
            i2 = j < 1000000 ? j < 100000 ? 5 : 6 : j < 10000000 ? 7 : 8;
        } else if (j >= 100) {
            i2 = j < 1000 ? 3 : 4;
        } else if (j >= 10) {
            i2 = 2;
        }
        if (z) {
            i2++;
        }
        Segment a2 = a(i2);
        byte[] bArr = a2.c;
        int i3 = a2.e + i2;
        while (j != 0) {
            i3--;
            bArr[i3] = d[(int) (j % 10)];
            j /= 10;
        }
        if (z) {
            bArr[i3 - 1] = 45;
        }
        a2.e += i2;
        this.c += (long) i2;
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeHexadecimalUnsignedLong(long j) {
        if (j == 0) {
            return writeByte(48);
        }
        int numberOfTrailingZeros = (Long.numberOfTrailingZeros(Long.highestOneBit(j)) / 4) + 1;
        Segment a2 = a(numberOfTrailingZeros);
        byte[] bArr = a2.c;
        int i = a2.e;
        for (int i2 = (a2.e + numberOfTrailingZeros) - 1; i2 >= i; i2--) {
            bArr[i2] = d[(int) (15 & j)];
            j >>>= 4;
        }
        a2.e += numberOfTrailingZeros;
        this.c += (long) numberOfTrailingZeros;
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeInt(int i) {
        Segment a2 = a(4);
        byte[] bArr = a2.c;
        int i2 = a2.e;
        int i3 = i2 + 1;
        bArr[i2] = (byte) ((i >>> 24) & 255);
        int i4 = i3 + 1;
        bArr[i3] = (byte) ((i >>> 16) & 255);
        int i5 = i4 + 1;
        bArr[i4] = (byte) ((i >>> 8) & 255);
        bArr[i5] = (byte) (i & 255);
        a2.e = i5 + 1;
        this.c += 4;
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeIntLe(int i) {
        return writeInt(Util.reverseBytesInt(i));
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeLong(long j) {
        Segment a2 = a(8);
        byte[] bArr = a2.c;
        int i = a2.e;
        int i2 = i + 1;
        bArr[i] = (byte) ((int) ((j >>> 56) & 255));
        int i3 = i2 + 1;
        bArr[i2] = (byte) ((int) ((j >>> 48) & 255));
        int i4 = i3 + 1;
        bArr[i3] = (byte) ((int) ((j >>> 40) & 255));
        int i5 = i4 + 1;
        bArr[i4] = (byte) ((int) ((j >>> 32) & 255));
        int i6 = i5 + 1;
        bArr[i5] = (byte) ((int) ((j >>> 24) & 255));
        int i7 = i6 + 1;
        bArr[i6] = (byte) ((int) ((j >>> 16) & 255));
        int i8 = i7 + 1;
        bArr[i7] = (byte) ((int) ((j >>> 8) & 255));
        bArr[i8] = (byte) ((int) (j & 255));
        a2.e = i8 + 1;
        this.c += 8;
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeLongLe(long j) {
        return writeLong(Util.reverseBytesLong(j));
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeShort(int i) {
        Segment a2 = a(2);
        byte[] bArr = a2.c;
        int i2 = a2.e;
        int i3 = i2 + 1;
        bArr[i2] = (byte) ((i >>> 8) & 255);
        bArr[i3] = (byte) (i & 255);
        a2.e = i3 + 1;
        this.c += 2;
        return this;
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeShortLe(int i) {
        return writeShort((int) Util.reverseBytesShort((short) i));
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeString(String str, int i, int i2, Charset charset) {
        if (str == null) {
            throw new IllegalArgumentException("string == null");
        } else if (i < 0) {
            throw new IllegalAccessError("beginIndex < 0: " + i);
        } else if (i2 < i) {
            throw new IllegalArgumentException("endIndex < beginIndex: " + i2 + " < " + i);
        } else if (i2 > str.length()) {
            throw new IllegalArgumentException("endIndex > string.length: " + i2 + " > " + str.length());
        } else if (charset == null) {
            throw new IllegalArgumentException("charset == null");
        } else if (charset.equals(Util.UTF_8)) {
            return writeUtf8(str);
        } else {
            byte[] bytes = str.substring(i, i2).getBytes(charset);
            return write(bytes, 0, bytes.length);
        }
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeString(String str, Charset charset) {
        return writeString(str, 0, str.length(), charset);
    }

    public Buffer writeTo(OutputStream outputStream) throws IOException {
        return writeTo(outputStream, this.c);
    }

    public Buffer writeTo(OutputStream outputStream, long j) throws IOException {
        if (outputStream != null) {
            Util.checkOffsetAndCount(this.c, 0, j);
            Segment segment = this.b;
            while (j > 0) {
                int min = (int) Math.min(j, (long) (segment.e - segment.d));
                outputStream.write(segment.c, segment.d, min);
                segment.d += min;
                long j2 = (long) min;
                this.c -= j2;
                j -= j2;
                if (segment.d == segment.e) {
                    Segment pop = segment.pop();
                    this.b = pop;
                    SegmentPool.a(segment);
                    segment = pop;
                }
            }
            return this;
        }
        throw new IllegalArgumentException("out == null");
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeUtf8(String str) {
        return writeUtf8(str, 0, str.length());
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeUtf8(String str, int i, int i2) {
        int i3;
        if (str == null) {
            throw new IllegalArgumentException("string == null");
        } else if (i < 0) {
            throw new IllegalAccessError("beginIndex < 0: " + i);
        } else if (i2 < i) {
            throw new IllegalArgumentException("endIndex < beginIndex: " + i2 + " < " + i);
        } else if (i2 <= str.length()) {
            while (i < i2) {
                char charAt = str.charAt(i);
                if (charAt < 128) {
                    Segment a2 = a(1);
                    byte[] bArr = a2.c;
                    int i4 = a2.e - i;
                    int min = Math.min(i2, 8192 - i4);
                    int i5 = i + 1;
                    bArr[i + i4] = (byte) charAt;
                    while (i5 < min) {
                        char charAt2 = str.charAt(i5);
                        if (charAt2 >= 128) {
                            break;
                        }
                        bArr[i5 + i4] = (byte) charAt2;
                        i5++;
                    }
                    int i6 = (i4 + i5) - a2.e;
                    a2.e += i6;
                    this.c += (long) i6;
                    i = i5;
                } else {
                    if (charAt < 2048) {
                        i3 = (charAt >> 6) | 192;
                    } else if (charAt < 55296 || charAt > 57343) {
                        writeByte((charAt >> '\f') | 224);
                        i3 = ((charAt >> 6) & 63) | 128;
                    } else {
                        int i7 = i + 1;
                        char charAt3 = i7 < i2 ? str.charAt(i7) : 0;
                        if (charAt > 56319 || charAt3 < 56320 || charAt3 > 57343) {
                            writeByte(63);
                            i = i7;
                        } else {
                            int i8 = (((charAt & 10239) << 10) | (9215 & charAt3)) + 65536;
                            writeByte((i8 >> 18) | 240);
                            writeByte(((i8 >> 12) & 63) | 128);
                            writeByte(((i8 >> 6) & 63) | 128);
                            writeByte((i8 & 63) | 128);
                            i += 2;
                        }
                    }
                    writeByte(i3);
                    writeByte((charAt & '?') | 128);
                    i++;
                }
            }
            return this;
        } else {
            throw new IllegalArgumentException("endIndex > string.length: " + i2 + " > " + str.length());
        }
    }

    @Override // com.czhj.wire.okio.BufferedSink
    public Buffer writeUtf8CodePoint(int i) {
        int i2;
        int i3;
        if (i >= 128) {
            if (i < 2048) {
                i3 = (i >> 6) | 192;
            } else {
                if (i < 65536) {
                    if (i < 55296 || i > 57343) {
                        i2 = (i >> 12) | 224;
                    } else {
                        throw new IllegalArgumentException("Unexpected code point: " + Integer.toHexString(i));
                    }
                } else if (i <= 1114111) {
                    writeByte((i >> 18) | 240);
                    i2 = ((i >> 12) & 63) | 128;
                } else {
                    throw new IllegalArgumentException("Unexpected code point: " + Integer.toHexString(i));
                }
                writeByte(i2);
                i3 = ((i >> 6) & 63) | 128;
            }
            writeByte(i3);
            i = (i & 63) | 128;
        }
        writeByte(i);
        return this;
    }
}