CrackMe.apk
Download file
package okio;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.extractor.ts.PsExtractor;
import com.google.common.base.Ascii;
import java.io.Closeable;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.ByteChannel;
import java.nio.charset.Charset;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.Objects;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import kotlin.Deprecated;
import kotlin.DeprecationLevel;
import kotlin.Metadata;
import kotlin.ReplaceWith;
import kotlin.collections.ArraysKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.StringCompanionObject;
import kotlin.text.Charsets;
import kotlin.text.Typography;
import okhttp3.internal.connection.RealConnection;
import okio.internal.BufferKt;
import org.apache.commons.codec.digest.MessageDigestAlgorithms;
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000ª\u0001\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u001a\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\t\n\u0002\b\u0005\n\u0002\u0010\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0002\b\u0003\n\u0002\u0010\u0005\n\u0002\b\u0005\n\u0002\u0010\b\n\u0002\b\r\n\u0002\u0018\u0002\n\u0002\b\b\n\u0002\u0018\u0002\n\u0002\u0010\u0012\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u000f\n\u0002\u0010\n\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\u0017\u0018\u00002\u00020\u00012\u00020\u00022\u00020\u00032\u00020\u0004:\u0002\u0001B\u0005¢\u0006\u0002\u0010\u0005J\b\u0010\u0006\u001a\u00020\u0000H\u0016J\u0006\u0010\u0011\u001a\u00020\u0012J\b\u0010\u0013\u001a\u00020\u0000H\u0016J\b\u0010\u0014\u001a\u00020\u0012H\u0016J\u0006\u0010\u0015\u001a\u00020\fJ\u0006\u0010\u0016\u001a\u00020\u0000J$\u0010\u0017\u001a\u00020\u00002\u0006\u0010\u0018\u001a\u00020\u00192\b\b\u0002\u0010\u001a\u001a\u00020\f2\b\b\u0002\u0010\u001b\u001a\u00020\fH\u0007J\u0018\u0010\u0017\u001a\u00020\u00002\u0006\u0010\u0018\u001a\u00020\u00002\b\b\u0002\u0010\u001a\u001a\u00020\fJ \u0010\u0017\u001a\u00020\u00002\u0006\u0010\u0018\u001a\u00020\u00002\b\b\u0002\u0010\u001a\u001a\u00020\f2\u0006\u0010\u001b\u001a\u00020\fJ\u0010\u0010\u001c\u001a\u00020\u001d2\u0006\u0010\u001e\u001a\u00020\u001fH\u0002J\b\u0010 \u001a\u00020\u0000H\u0016J\b\u0010!\u001a\u00020\u0000H\u0016J\u0013\u0010\"\u001a\u00020#2\b\u0010$\u001a\u0004\u0018\u00010%H\u0002J\b\u0010&\u001a\u00020#H\u0016J\b\u0010'\u001a\u00020\u0012H\u0016J\u0016\u0010(\u001a\u00020)2\u0006\u0010*\u001a\u00020\fH\u0002¢\u0006\u0002\b+J\u0015\u0010+\u001a\u00020)2\u0006\u0010,\u001a\u00020\fH\u0007¢\u0006\u0002\b-J\b\u0010.\u001a\u00020/H\u0016J\u0018\u00100\u001a\u00020\u001d2\u0006\u0010\u001e\u001a\u00020\u001f2\u0006\u00101\u001a\u00020\u001dH\u0002J\u000e\u00102\u001a\u00020\u001d2\u0006\u00101\u001a\u00020\u001dJ\u000e\u00103\u001a\u00020\u001d2\u0006\u00101\u001a\u00020\u001dJ\u000e\u00104\u001a\u00020\u001d2\u0006\u00101\u001a\u00020\u001dJ\u0010\u00105\u001a\u00020\f2\u0006\u00106\u001a\u00020)H\u0016J\u0018\u00105\u001a\u00020\f2\u0006\u00106\u001a\u00020)2\u0006\u00107\u001a\u00020\fH\u0016J \u00105\u001a\u00020\f2\u0006\u00106\u001a\u00020)2\u0006\u00107\u001a\u00020\f2\u0006\u00108\u001a\u00020\fH\u0016J\u0010\u00105\u001a\u00020\f2\u0006\u00109\u001a\u00020\u001dH\u0016J\u0018\u00105\u001a\u00020\f2\u0006\u00109\u001a\u00020\u001d2\u0006\u00107\u001a\u00020\fH\u0016J\u0010\u0010:\u001a\u00020\f2\u0006\u0010;\u001a\u00020\u001dH\u0016J\u0018\u0010:\u001a\u00020\f2\u0006\u0010;\u001a\u00020\u001d2\u0006\u00107\u001a\u00020\fH\u0016J\b\u0010<\u001a\u00020=H\u0016J\b\u0010>\u001a\u00020#H\u0016J\u0006\u0010?\u001a\u00020\u001dJ\b\u0010@\u001a\u00020\u0019H\u0016J\b\u0010A\u001a\u00020\u0001H\u0016J\u0018\u0010B\u001a\u00020#2\u0006\u0010\u001a\u001a\u00020\f2\u0006\u00109\u001a\u00020\u001dH\u0016J(\u0010B\u001a\u00020#2\u0006\u0010\u001a\u001a\u00020\f2\u0006\u00109\u001a\u00020\u001d2\u0006\u0010C\u001a\u00020/2\u0006\u0010\u001b\u001a\u00020/H\u0016J\u0010\u0010D\u001a\u00020/2\u0006\u0010E\u001a\u00020FH\u0016J\u0010\u0010D\u001a\u00020/2\u0006\u0010E\u001a\u00020GH\u0016J \u0010D\u001a\u00020/2\u0006\u0010E\u001a\u00020G2\u0006\u0010\u001a\u001a\u00020/2\u0006\u0010\u001b\u001a\u00020/H\u0016J\u0018\u0010D\u001a\u00020\f2\u0006\u0010E\u001a\u00020\u00002\u0006\u0010\u001b\u001a\u00020\fH\u0016J\u0010\u0010H\u001a\u00020\f2\u0006\u0010E\u001a\u00020IH\u0016J\u0012\u0010J\u001a\u00020K2\b\b\u0002\u0010L\u001a\u00020KH\u0007J\b\u0010M\u001a\u00020)H\u0016J\b\u0010N\u001a\u00020GH\u0016J\u0010\u0010N\u001a\u00020G2\u0006\u0010\u001b\u001a\u00020\fH\u0016J\b\u0010O\u001a\u00020\u001dH\u0016J\u0010\u0010O\u001a\u00020\u001d2\u0006\u0010\u001b\u001a\u00020\fH\u0016J\b\u0010P\u001a\u00020\fH\u0016J\u000e\u0010Q\u001a\u00020\u00002\u0006\u0010R\u001a\u00020=J\u0016\u0010Q\u001a\u00020\u00002\u0006\u0010R\u001a\u00020=2\u0006\u0010\u001b\u001a\u00020\fJ \u0010Q\u001a\u00020\u00122\u0006\u0010R\u001a\u00020=2\u0006\u0010\u001b\u001a\u00020\f2\u0006\u0010S\u001a\u00020#H\u0002J\u0010\u0010T\u001a\u00020\u00122\u0006\u0010E\u001a\u00020GH\u0016J\u0018\u0010T\u001a\u00020\u00122\u0006\u0010E\u001a\u00020\u00002\u0006\u0010\u001b\u001a\u00020\fH\u0016J\b\u0010U\u001a\u00020\fH\u0016J\b\u0010V\u001a\u00020/H\u0016J\b\u0010W\u001a\u00020/H\u0016J\b\u0010X\u001a\u00020\fH\u0016J\b\u0010Y\u001a\u00020\fH\u0016J\b\u0010Z\u001a\u00020[H\u0016J\b\u0010\\\u001a\u00020[H\u0016J\u0010\u0010]\u001a\u00020\u001f2\u0006\u0010^\u001a\u00020_H\u0016J\u0018\u0010]\u001a\u00020\u001f2\u0006\u0010\u001b\u001a\u00020\f2\u0006\u0010^\u001a\u00020_H\u0016J\u0012\u0010`\u001a\u00020K2\b\b\u0002\u0010L\u001a\u00020KH\u0007J\b\u0010a\u001a\u00020\u001fH\u0016J\u0010\u0010a\u001a\u00020\u001f2\u0006\u0010\u001b\u001a\u00020\fH\u0016J\b\u0010b\u001a\u00020/H\u0016J\n\u0010c\u001a\u0004\u0018\u00010\u001fH\u0016J\b\u0010d\u001a\u00020\u001fH\u0016J\u0010\u0010d\u001a\u00020\u001f2\u0006\u0010e\u001a\u00020\fH\u0016J\u0010\u0010f\u001a\u00020#2\u0006\u0010\u001b\u001a\u00020\fH\u0016J\u0010\u0010g\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\fH\u0016J\u0010\u0010h\u001a\u00020/2\u0006\u0010i\u001a\u00020jH\u0016J\u0006\u0010k\u001a\u00020\u001dJ\u0006\u0010l\u001a\u00020\u001dJ\u0006\u0010m\u001a\u00020\u001dJ\r\u0010\r\u001a\u00020\fH\u0007¢\u0006\u0002\bnJ\u0010\u0010o\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\fH\u0016J\u0006\u0010p\u001a\u00020\u001dJ\u000e\u0010p\u001a\u00020\u001d2\u0006\u0010\u001b\u001a\u00020/J\b\u0010q\u001a\u00020rH\u0016J\b\u0010s\u001a\u00020\u001fH\u0016J\u0015\u0010t\u001a\u00020\n2\u0006\u0010u\u001a\u00020/H\u0000¢\u0006\u0002\bvJ\u0010\u0010w\u001a\u00020/2\u0006\u0010x\u001a\u00020FH\u0016J\u0010\u0010w\u001a\u00020\u00002\u0006\u0010x\u001a\u00020GH\u0016J \u0010w\u001a\u00020\u00002\u0006\u0010x\u001a\u00020G2\u0006\u0010\u001a\u001a\u00020/2\u0006\u0010\u001b\u001a\u00020/H\u0016J\u0018\u0010w\u001a\u00020\u00122\u0006\u0010x\u001a\u00020\u00002\u0006\u0010\u001b\u001a\u00020\fH\u0016J\u0010\u0010w\u001a\u00020\u00002\u0006\u0010y\u001a\u00020\u001dH\u0016J \u0010w\u001a\u00020\u00002\u0006\u0010y\u001a\u00020\u001d2\u0006\u0010\u001a\u001a\u00020/2\u0006\u0010\u001b\u001a\u00020/H\u0016J\u0018\u0010w\u001a\u00020\u00002\u0006\u0010x\u001a\u00020z2\u0006\u0010\u001b\u001a\u00020\fH\u0016J\u0010\u0010{\u001a\u00020\f2\u0006\u0010x\u001a\u00020zH\u0016J\u0010\u0010|\u001a\u00020\u00002\u0006\u00106\u001a\u00020/H\u0016J\u0010\u0010}\u001a\u00020\u00002\u0006\u0010~\u001a\u00020\fH\u0016J\u0010\u0010\u001a\u00020\u00002\u0006\u0010~\u001a\u00020\fH\u0016J\u0012\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020/H\u0016J\u0012\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020/H\u0016J\u0011\u0010\u0001\u001a\u00020\u00002\u0006\u0010~\u001a\u00020\fH\u0016J\u0011\u0010\u0001\u001a\u00020\u00002\u0006\u0010~\u001a\u00020\fH\u0016J\u0012\u0010
\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020/H\u0016J\u0012\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020/H\u0016J\u001a\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020\u001f2\u0006\u0010^\u001a\u00020_H\u0016J,\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020\u001f2\u0007\u0010\u0001\u001a\u00020/2\u0007\u0010\u0001\u001a\u00020/2\u0006\u0010^\u001a\u00020_H\u0016J\u001b\u0010\u0001\u001a\u00020\u00002\u0006\u0010\u0018\u001a\u00020\u00192\b\b\u0002\u0010\u001b\u001a\u00020\fH\u0007J\u0012\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020\u001fH\u0016J$\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020\u001f2\u0007\u0010\u0001\u001a\u00020/2\u0007\u0010\u0001\u001a\u00020/H\u0016J\u0012\u0010\u0001\u001a\u00020\u00002\u0007\u0010\u0001\u001a\u00020/H\u0016R\u0014\u0010\u0006\u001a\u00020\u00008VX\u0004¢\u0006\u0006\u001a\u0004\b\u0007\u0010\bR\u0014\u0010\t\u001a\u0004\u0018\u00010\n8\u0000@\u0000X\u000e¢\u0006\u0002\n\u0000R&\u0010\r\u001a\u00020\f2\u0006\u0010\u000b\u001a\u00020\f8G@@X\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\r\u0010\u000e\"\u0004\b\u000f\u0010\u0010¨\u0006\u0001"}, d2 = {"Lokio/Buffer;", "Lokio/BufferedSource;", "Lokio/BufferedSink;", "", "Ljava/nio/channels/ByteChannel;", "()V", "buffer", "getBuffer", "()Lokio/Buffer;", "head", "Lokio/Segment;", "<set-?>", "", "size", "()J", "setSize$okio", "(J)V", "clear", "", "clone", "close", "completeSegmentByteCount", "copy", "copyTo", "out", "Ljava/io/OutputStream;", "offset", "byteCount", "digest", "Lokio/ByteString;", "algorithm", "", "emit", "emitCompleteSegments", "equals", "", "other", "", "exhausted", "flush", "get", "", "pos", "getByte", "index", "-deprecated_getByte", "hashCode", "", "hmac", "key", "hmacSha1", "hmacSha256", "hmacSha512", "indexOf", "b", "fromIndex", "toIndex", "bytes", "indexOfElement", "targetBytes", "inputStream", "Ljava/io/InputStream;", "isOpen", "md5", "outputStream", "peek", "rangeEquals", "bytesOffset", "read", "sink", "Ljava/nio/ByteBuffer;", "", "readAll", "Lokio/Sink;", "readAndWriteUnsafe", "Lokio/Buffer$UnsafeCursor;", "unsafeCursor", "readByte", "readByteArray", "readByteString", "readDecimalLong", "readFrom", "input", "forever", "readFully", "readHexadecimalUnsignedLong", "readInt", "readIntLe", "readLong", "readLongLe", "readShort", "", "readShortLe", "readString", "charset", "Ljava/nio/charset/Charset;", "readUnsafe", "readUtf8", "readUtf8CodePoint", "readUtf8Line", "readUtf8LineStrict", "limit", "request", "require", "select", "options", "Lokio/Options;", "sha1", "sha256", "sha512", "-deprecated_size", "skip", "snapshot", "timeout", "Lokio/Timeout;", "toString", "writableSegment", "minimumCapacity", "writableSegment$okio", "write", "source", "byteString", "Lokio/Source;", "writeAll", "writeByte", "writeDecimalLong", "v", "writeHexadecimalUnsignedLong", "writeInt", "i", "writeIntLe", "writeLong", "writeLongLe", "writeShort", "s", "writeShortLe", "writeString", "string", "beginIndex", "endIndex", "writeTo", "writeUtf8", "writeUtf8CodePoint", "codePoint", "UnsafeCursor", "okio"}, k = 1, mv = {1, 4, 0})
/* compiled from: Buffer.kt */
public final class Buffer implements BufferedSource, BufferedSink, Cloneable, ByteChannel {
public Segment head;
private long size;
public static /* synthetic */ Buffer copyTo$default(Buffer buffer, Buffer buffer2, long j, int i, Object obj) {
if ((i & 2) != 0) {
j = 0;
}
return buffer.copyTo(buffer2, j);
}
public static /* synthetic */ Buffer copyTo$default(Buffer buffer, Buffer buffer2, long j, long j2, int i, Object obj) {
if ((i & 2) != 0) {
j = 0;
}
return buffer.copyTo(buffer2, j, j2);
}
public Buffer buffer() {
return this;
}
public void close() {
}
public final Buffer copyTo(OutputStream outputStream) throws IOException {
return copyTo$default(this, outputStream, 0, 0, 6, (Object) null);
}
public final Buffer copyTo(OutputStream outputStream, long j) throws IOException {
return copyTo$default(this, outputStream, j, 0, 4, (Object) null);
}
public Buffer emit() {
return this;
}
public Buffer emitCompleteSegments() {
return this;
}
public void flush() {
}
public Buffer getBuffer() {
return this;
}
public boolean isOpen() {
return true;
}
public final UnsafeCursor readAndWriteUnsafe() {
return readAndWriteUnsafe$default(this, (UnsafeCursor) null, 1, (Object) null);
}
public final UnsafeCursor readUnsafe() {
return readUnsafe$default(this, (UnsafeCursor) null, 1, (Object) null);
}
public final Buffer writeTo(OutputStream outputStream) throws IOException {
return writeTo$default(this, outputStream, 0, 2, (Object) null);
}
public final void setSize$okio(long j) {
this.size = j;
}
public final long size() {
return this.size;
}
public OutputStream outputStream() {
return new Buffer$outputStream$1(this);
}
public boolean exhausted() {
return this.size == 0;
}
public void require(long j) throws EOFException {
if (this.size < j) {
throw new EOFException();
}
}
public boolean request(long j) {
return this.size >= j;
}
public BufferedSource peek() {
return Okio.buffer((Source) new PeekSource(this));
}
public InputStream inputStream() {
return new Buffer$inputStream$1(this);
}
public static /* synthetic */ Buffer copyTo$default(Buffer buffer, OutputStream outputStream, long j, long j2, int i, Object obj) throws IOException {
if ((i & 2) != 0) {
j = 0;
}
long j3 = j;
if ((i & 4) != 0) {
j2 = buffer.size - j3;
}
return buffer.copyTo(outputStream, j3, j2);
}
public final Buffer copyTo(OutputStream outputStream, long j, long j2) throws IOException {
Intrinsics.checkNotNullParameter(outputStream, "out");
Util.checkOffsetAndCount(this.size, j, j2);
if (j2 == 0) {
return this;
}
Segment segment = this.head;
while (true) {
Intrinsics.checkNotNull(segment);
if (j < ((long) (segment.limit - segment.pos))) {
break;
}
j -= (long) (segment.limit - segment.pos);
segment = segment.next;
}
while (j2 > 0) {
Intrinsics.checkNotNull(segment);
int i = (int) (((long) segment.pos) + j);
int min = (int) Math.min((long) (segment.limit - i), j2);
outputStream.write(segment.data, i, min);
j2 -= (long) min;
segment = segment.next;
j = 0;
}
return this;
}
public final Buffer copyTo(Buffer buffer, long j) {
Intrinsics.checkNotNullParameter(buffer, "out");
return copyTo(buffer, j, this.size - j);
}
public static /* synthetic */ Buffer writeTo$default(Buffer buffer, OutputStream outputStream, long j, int i, Object obj) throws IOException {
if ((i & 2) != 0) {
j = buffer.size;
}
return buffer.writeTo(outputStream, j);
}
public final Buffer writeTo(OutputStream outputStream, long j) throws IOException {
Intrinsics.checkNotNullParameter(outputStream, "out");
Util.checkOffsetAndCount(this.size, 0, j);
Segment segment = this.head;
while (j > 0) {
Intrinsics.checkNotNull(segment);
int min = (int) Math.min(j, (long) (segment.limit - segment.pos));
outputStream.write(segment.data, segment.pos, min);
segment.pos += min;
long j2 = (long) min;
this.size -= j2;
j -= j2;
if (segment.pos == segment.limit) {
Segment pop = segment.pop();
this.head = pop;
SegmentPool.recycle(segment);
segment = pop;
}
}
return this;
}
public final Buffer readFrom(InputStream inputStream) throws IOException {
Intrinsics.checkNotNullParameter(inputStream, "input");
readFrom(inputStream, Long.MAX_VALUE, true);
return this;
}
public final Buffer readFrom(InputStream inputStream, long j) throws IOException {
Intrinsics.checkNotNullParameter(inputStream, "input");
if (j >= 0) {
readFrom(inputStream, j, false);
return this;
}
throw new IllegalArgumentException(("byteCount < 0: " + j).toString());
}
private final void readFrom(InputStream inputStream, long j, boolean z) throws IOException {
while (true) {
if (j > 0 || z) {
Segment writableSegment$okio = writableSegment$okio(1);
int read = inputStream.read(writableSegment$okio.data, writableSegment$okio.limit, (int) Math.min(j, (long) (8192 - writableSegment$okio.limit)));
if (read == -1) {
if (writableSegment$okio.pos == writableSegment$okio.limit) {
this.head = writableSegment$okio.pop();
SegmentPool.recycle(writableSegment$okio);
}
if (!z) {
throw new EOFException();
}
return;
}
writableSegment$okio.limit += read;
long j2 = (long) read;
this.size += j2;
j -= j2;
} else {
return;
}
}
}
public short readShortLe() throws EOFException {
return Util.reverseBytes(readShort());
}
public int readIntLe() throws EOFException {
return Util.reverseBytes(readInt());
}
public long readLongLe() throws EOFException {
return Util.reverseBytes(readLong());
}
public String readUtf8() {
return readString(this.size, Charsets.UTF_8);
}
public String readUtf8(long j) throws EOFException {
return readString(j, Charsets.UTF_8);
}
public String readString(Charset charset) {
Intrinsics.checkNotNullParameter(charset, "charset");
return readString(this.size, charset);
}
public String readString(long j, Charset charset) throws EOFException {
Intrinsics.checkNotNullParameter(charset, "charset");
int i = (j > 0 ? 1 : (j == 0 ? 0 : -1));
if (!(i >= 0 && j <= ((long) Integer.MAX_VALUE))) {
throw new IllegalArgumentException(("byteCount: " + j).toString());
} else if (this.size < j) {
throw new EOFException();
} else if (i == 0) {
return "";
} else {
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
if (((long) segment.pos) + j > ((long) segment.limit)) {
return new String(readByteArray(j), charset);
}
int i2 = (int) j;
String str = new String(segment.data, segment.pos, i2, charset);
segment.pos += i2;
this.size -= j;
if (segment.pos == segment.limit) {
this.head = segment.pop();
SegmentPool.recycle(segment);
}
return str;
}
}
public String readUtf8LineStrict() throws EOFException {
return readUtf8LineStrict(Long.MAX_VALUE);
}
public int read(ByteBuffer byteBuffer) throws IOException {
Intrinsics.checkNotNullParameter(byteBuffer, "sink");
Segment segment = this.head;
if (segment == null) {
return -1;
}
int min = Math.min(byteBuffer.remaining(), segment.limit - segment.pos);
byteBuffer.put(segment.data, segment.pos, min);
segment.pos += min;
this.size -= (long) min;
if (segment.pos == segment.limit) {
this.head = segment.pop();
SegmentPool.recycle(segment);
}
return min;
}
public Buffer writeUtf8(String str) {
Intrinsics.checkNotNullParameter(str, "string");
return writeUtf8(str, 0, str.length());
}
public Buffer writeString(String str, Charset charset) {
Intrinsics.checkNotNullParameter(str, "string");
Intrinsics.checkNotNullParameter(charset, "charset");
return writeString(str, 0, str.length(), charset);
}
public Buffer writeString(String str, int i, int i2, Charset charset) {
Intrinsics.checkNotNullParameter(str, "string");
Intrinsics.checkNotNullParameter(charset, "charset");
boolean z = true;
if (i >= 0) {
if (i2 >= i) {
if (i2 > str.length()) {
z = false;
}
if (!z) {
throw new IllegalArgumentException(("endIndex > string.length: " + i2 + " > " + str.length()).toString());
} else if (Intrinsics.areEqual((Object) charset, (Object) Charsets.UTF_8)) {
return writeUtf8(str, i, i2);
} else {
String substring = str.substring(i, i2);
Intrinsics.checkNotNullExpressionValue(substring, "(this as java.lang.Strin…ing(startIndex, endIndex)");
Objects.requireNonNull(substring, "null cannot be cast to non-null type java.lang.String");
byte[] bytes = substring.getBytes(charset);
Intrinsics.checkNotNullExpressionValue(bytes, "(this as java.lang.String).getBytes(charset)");
return write(bytes, 0, bytes.length);
}
} else {
throw new IllegalArgumentException(("endIndex < beginIndex: " + i2 + " < " + i).toString());
}
} else {
throw new IllegalArgumentException(("beginIndex < 0: " + i).toString());
}
}
public int write(ByteBuffer byteBuffer) throws IOException {
Intrinsics.checkNotNullParameter(byteBuffer, "source");
int remaining = byteBuffer.remaining();
int i = remaining;
while (i > 0) {
Segment writableSegment$okio = writableSegment$okio(1);
int min = Math.min(i, 8192 - writableSegment$okio.limit);
byteBuffer.get(writableSegment$okio.data, writableSegment$okio.limit, min);
i -= min;
writableSegment$okio.limit += min;
}
this.size += (long) remaining;
return remaining;
}
public Buffer writeShortLe(int i) {
return writeShort((int) Util.reverseBytes((short) i));
}
public Buffer writeIntLe(int i) {
return writeInt(Util.reverseBytes(i));
}
public Buffer writeLongLe(long j) {
return writeLong(Util.reverseBytes(j));
}
public long indexOf(byte b) {
return indexOf(b, 0, Long.MAX_VALUE);
}
public long indexOf(byte b, long j) {
return indexOf(b, j, Long.MAX_VALUE);
}
public long indexOf(ByteString byteString) throws IOException {
Intrinsics.checkNotNullParameter(byteString, "bytes");
return indexOf(byteString, 0);
}
public long indexOfElement(ByteString byteString) {
Intrinsics.checkNotNullParameter(byteString, "targetBytes");
return indexOfElement(byteString, 0);
}
public boolean rangeEquals(long j, ByteString byteString) {
Intrinsics.checkNotNullParameter(byteString, "bytes");
return rangeEquals(j, byteString, 0, byteString.size());
}
public Timeout timeout() {
return Timeout.NONE;
}
public final ByteString md5() {
return digest(MessageDigestAlgorithms.MD5);
}
public final ByteString sha1() {
return digest(MessageDigestAlgorithms.SHA_1);
}
public final ByteString sha256() {
return digest(MessageDigestAlgorithms.SHA_256);
}
public final ByteString sha512() {
return digest(MessageDigestAlgorithms.SHA_512);
}
private final ByteString digest(String str) {
MessageDigest instance = MessageDigest.getInstance(str);
Segment segment = this.head;
if (segment != null) {
instance.update(segment.data, segment.pos, segment.limit - segment.pos);
Segment segment2 = segment.next;
Intrinsics.checkNotNull(segment2);
while (segment2 != segment) {
instance.update(segment2.data, segment2.pos, segment2.limit - segment2.pos);
segment2 = segment2.next;
Intrinsics.checkNotNull(segment2);
}
}
byte[] digest = instance.digest();
Intrinsics.checkNotNullExpressionValue(digest, "messageDigest.digest()");
return new ByteString(digest);
}
public final ByteString hmacSha1(ByteString byteString) {
Intrinsics.checkNotNullParameter(byteString, "key");
return hmac("HmacSHA1", byteString);
}
public final ByteString hmacSha256(ByteString byteString) {
Intrinsics.checkNotNullParameter(byteString, "key");
return hmac("HmacSHA256", byteString);
}
public final ByteString hmacSha512(ByteString byteString) {
Intrinsics.checkNotNullParameter(byteString, "key");
return hmac("HmacSHA512", byteString);
}
private final ByteString hmac(String str, ByteString byteString) {
try {
Mac instance = Mac.getInstance(str);
instance.init(new SecretKeySpec(byteString.internalArray$okio(), str));
Segment segment = this.head;
if (segment != null) {
instance.update(segment.data, segment.pos, segment.limit - segment.pos);
Segment segment2 = segment.next;
Intrinsics.checkNotNull(segment2);
while (segment2 != segment) {
instance.update(segment2.data, segment2.pos, segment2.limit - segment2.pos);
segment2 = segment2.next;
Intrinsics.checkNotNull(segment2);
}
}
byte[] doFinal = instance.doFinal();
Intrinsics.checkNotNullExpressionValue(doFinal, "mac.doFinal()");
return new ByteString(doFinal);
} catch (InvalidKeyException e) {
throw new IllegalArgumentException(e);
}
}
public String toString() {
return snapshot().toString();
}
public Buffer clone() {
return copy();
}
public static /* synthetic */ UnsafeCursor readUnsafe$default(Buffer buffer, UnsafeCursor unsafeCursor, int i, Object obj) {
if ((i & 1) != 0) {
unsafeCursor = new UnsafeCursor();
}
return buffer.readUnsafe(unsafeCursor);
}
public final UnsafeCursor readUnsafe(UnsafeCursor unsafeCursor) {
Intrinsics.checkNotNullParameter(unsafeCursor, "unsafeCursor");
if (unsafeCursor.buffer == null) {
Buffer buffer = this;
unsafeCursor.buffer = this;
unsafeCursor.readWrite = false;
return unsafeCursor;
}
throw new IllegalStateException("already attached to a buffer".toString());
}
public static /* synthetic */ UnsafeCursor readAndWriteUnsafe$default(Buffer buffer, UnsafeCursor unsafeCursor, int i, Object obj) {
if ((i & 1) != 0) {
unsafeCursor = new UnsafeCursor();
}
return buffer.readAndWriteUnsafe(unsafeCursor);
}
public final UnsafeCursor readAndWriteUnsafe(UnsafeCursor unsafeCursor) {
Intrinsics.checkNotNullParameter(unsafeCursor, "unsafeCursor");
if (unsafeCursor.buffer == null) {
Buffer buffer = this;
unsafeCursor.buffer = this;
unsafeCursor.readWrite = true;
return unsafeCursor;
}
throw new IllegalStateException("already attached to a buffer".toString());
}
@Deprecated(level = DeprecationLevel.ERROR, message = "moved to operator function", replaceWith = @ReplaceWith(expression = "this[index]", imports = {}))
/* renamed from: -deprecated_getByte reason: not valid java name */
public final byte m1985deprecated_getByte(long j) {
return getByte(j);
}
@Deprecated(level = DeprecationLevel.ERROR, message = "moved to val", replaceWith = @ReplaceWith(expression = "size", imports = {}))
/* renamed from: -deprecated_size reason: not valid java name */
public final long m1986deprecated_size() {
return this.size;
}
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000:\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0012\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\t\n\u0000\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0007\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\b\u0010\u0010\u001a\u00020\u0011H\u0016J\u000e\u0010\u0012\u001a\u00020\n2\u0006\u0010\u0013\u001a\u00020\bJ\u0006\u0010\u0014\u001a\u00020\bJ\u000e\u0010\u0015\u001a\u00020\n2\u0006\u0010\u0016\u001a\u00020\nJ\u000e\u0010\u0017\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\nR\u0014\u0010\u0003\u001a\u0004\u0018\u00010\u00048\u0006@\u0006X\u000e¢\u0006\u0002\n\u0000R\u0014\u0010\u0005\u001a\u0004\u0018\u00010\u00068\u0006@\u0006X\u000e¢\u0006\u0002\n\u0000R\u0012\u0010\u0007\u001a\u00020\b8\u0006@\u0006X\u000e¢\u0006\u0002\n\u0000R\u0012\u0010\t\u001a\u00020\n8\u0006@\u0006X\u000e¢\u0006\u0002\n\u0000R\u0012\u0010\u000b\u001a\u00020\f8\u0006@\u0006X\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\r\u001a\u0004\u0018\u00010\u000eX\u000e¢\u0006\u0002\n\u0000R\u0012\u0010\u000f\u001a\u00020\b8\u0006@\u0006X\u000e¢\u0006\u0002\n\u0000¨\u0006\u0018"}, d2 = {"Lokio/Buffer$UnsafeCursor;", "Ljava/io/Closeable;", "()V", "buffer", "Lokio/Buffer;", "data", "", "end", "", "offset", "", "readWrite", "", "segment", "Lokio/Segment;", "start", "close", "", "expandBuffer", "minByteCount", "next", "resizeBuffer", "newSize", "seek", "okio"}, k = 1, mv = {1, 4, 0})
/* compiled from: Buffer.kt */
public static final class UnsafeCursor implements Closeable {
public Buffer buffer;
public byte[] data;
public int end = -1;
public long offset = -1;
public boolean readWrite;
private Segment segment;
public int start = -1;
public final int next() {
long j = this.offset;
Buffer buffer2 = this.buffer;
Intrinsics.checkNotNull(buffer2);
if (j != buffer2.size()) {
long j2 = this.offset;
return seek(j2 == -1 ? 0 : j2 + ((long) (this.end - this.start)));
}
throw new IllegalStateException("no more bytes".toString());
}
public final int seek(long j) {
Buffer buffer2 = this.buffer;
if (buffer2 == null) {
throw new IllegalStateException("not attached to a buffer".toString());
} else if (j < ((long) -1) || j > buffer2.size()) {
StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
String format = String.format("offset=%s > size=%s", Arrays.copyOf(new Object[]{Long.valueOf(j), Long.valueOf(buffer2.size())}, 2));
Intrinsics.checkNotNullExpressionValue(format, "java.lang.String.format(format, *args)");
throw new ArrayIndexOutOfBoundsException(format);
} else if (j == -1 || j == buffer2.size()) {
Segment segment2 = null;
this.segment = null;
this.offset = j;
byte[] bArr = null;
this.data = null;
this.start = -1;
this.end = -1;
return -1;
} else {
long j2 = 0;
long size = buffer2.size();
Segment segment3 = buffer2.head;
Segment segment4 = buffer2.head;
Segment segment5 = this.segment;
if (segment5 != null) {
long j3 = this.offset;
int i = this.start;
Intrinsics.checkNotNull(segment5);
long j4 = j3 - ((long) (i - segment5.pos));
if (j4 > j) {
segment4 = this.segment;
size = j4;
} else {
segment3 = this.segment;
j2 = j4;
}
}
if (size - j > j - j2) {
while (true) {
Intrinsics.checkNotNull(segment3);
if (j < ((long) (segment3.limit - segment3.pos)) + j2) {
break;
}
j2 += (long) (segment3.limit - segment3.pos);
segment3 = segment3.next;
}
} else {
while (size > j) {
Intrinsics.checkNotNull(segment4);
segment4 = segment4.prev;
Intrinsics.checkNotNull(segment4);
size -= (long) (segment4.limit - segment4.pos);
}
j2 = size;
segment3 = segment4;
}
if (this.readWrite) {
Intrinsics.checkNotNull(segment3);
if (segment3.shared) {
Segment unsharedCopy = segment3.unsharedCopy();
if (buffer2.head == segment3) {
buffer2.head = unsharedCopy;
}
segment3 = segment3.push(unsharedCopy);
Segment segment6 = segment3.prev;
Intrinsics.checkNotNull(segment6);
segment6.pop();
}
}
this.segment = segment3;
this.offset = j;
Intrinsics.checkNotNull(segment3);
this.data = segment3.data;
this.start = segment3.pos + ((int) (j - j2));
int i2 = segment3.limit;
this.end = i2;
return i2 - this.start;
}
}
public final long resizeBuffer(long j) {
long j2 = j;
Buffer buffer2 = this.buffer;
if (buffer2 == null) {
throw new IllegalStateException("not attached to a buffer".toString());
} else if (this.readWrite) {
long size = buffer2.size();
int i = 1;
int i2 = (j2 > size ? 1 : (j2 == size ? 0 : -1));
if (i2 <= 0) {
if (j2 >= 0) {
long j3 = size - j2;
while (true) {
if (j3 <= 0) {
break;
}
Segment segment2 = buffer2.head;
Intrinsics.checkNotNull(segment2);
Segment segment3 = segment2.prev;
Intrinsics.checkNotNull(segment3);
long j4 = (long) (segment3.limit - segment3.pos);
if (j4 > j3) {
segment3.limit -= (int) j3;
break;
}
buffer2.head = segment3.pop();
SegmentPool.recycle(segment3);
j3 -= j4;
}
Segment segment4 = null;
this.segment = null;
this.offset = j2;
byte[] bArr = null;
this.data = null;
this.start = -1;
this.end = -1;
} else {
throw new IllegalArgumentException(("newSize < 0: " + j2).toString());
}
} else if (i2 > 0) {
long j5 = j2 - size;
boolean z = true;
while (j5 > 0) {
Segment writableSegment$okio = buffer2.writableSegment$okio(i);
int min = (int) Math.min(j5, (long) (8192 - writableSegment$okio.limit));
writableSegment$okio.limit += min;
j5 -= (long) min;
if (z) {
this.segment = writableSegment$okio;
this.offset = size;
this.data = writableSegment$okio.data;
this.start = writableSegment$okio.limit - min;
this.end = writableSegment$okio.limit;
z = false;
}
i = 1;
}
}
buffer2.setSize$okio(j2);
return size;
} else {
throw new IllegalStateException("resizeBuffer() only permitted for read/write buffers".toString());
}
}
public final long expandBuffer(int i) {
boolean z = true;
if (i > 0) {
if (i > 8192) {
z = false;
}
if (z) {
Buffer buffer2 = this.buffer;
if (buffer2 == null) {
throw new IllegalStateException("not attached to a buffer".toString());
} else if (this.readWrite) {
long size = buffer2.size();
Segment writableSegment$okio = buffer2.writableSegment$okio(i);
int i2 = 8192 - writableSegment$okio.limit;
writableSegment$okio.limit = 8192;
long j = (long) i2;
buffer2.setSize$okio(size + j);
this.segment = writableSegment$okio;
this.offset = size;
this.data = writableSegment$okio.data;
this.start = 8192 - i2;
this.end = 8192;
return j;
} else {
throw new IllegalStateException("expandBuffer() only permitted for read/write buffers".toString());
}
} else {
throw new IllegalArgumentException(("minByteCount > Segment.SIZE: " + i).toString());
}
} else {
throw new IllegalArgumentException(("minByteCount <= 0: " + i).toString());
}
}
public void close() {
if (this.buffer != null) {
Buffer buffer2 = null;
this.buffer = null;
Segment segment2 = null;
this.segment = null;
this.offset = -1;
byte[] bArr = null;
this.data = null;
this.start = -1;
this.end = -1;
return;
}
throw new IllegalStateException("not attached to a buffer".toString());
}
}
public final Buffer copyTo(Buffer buffer, long j, long j2) {
Intrinsics.checkNotNullParameter(buffer, "out");
Util.checkOffsetAndCount(size(), j, j2);
if (j2 != 0) {
buffer.setSize$okio(buffer.size() + j2);
Segment segment = this.head;
while (true) {
Intrinsics.checkNotNull(segment);
if (j < ((long) (segment.limit - segment.pos))) {
break;
}
j -= (long) (segment.limit - segment.pos);
segment = segment.next;
}
while (j2 > 0) {
Intrinsics.checkNotNull(segment);
Segment sharedCopy = segment.sharedCopy();
sharedCopy.pos += (int) j;
sharedCopy.limit = Math.min(sharedCopy.pos + ((int) j2), sharedCopy.limit);
Segment segment2 = buffer.head;
if (segment2 == null) {
sharedCopy.prev = sharedCopy;
sharedCopy.next = sharedCopy.prev;
buffer.head = sharedCopy.next;
} else {
Intrinsics.checkNotNull(segment2);
Segment segment3 = segment2.prev;
Intrinsics.checkNotNull(segment3);
segment3.push(sharedCopy);
}
j2 -= (long) (sharedCopy.limit - sharedCopy.pos);
segment = segment.next;
j = 0;
}
}
return this;
}
public final long completeSegmentByteCount() {
long size2 = size();
if (size2 == 0) {
return 0;
}
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
Segment segment2 = segment.prev;
Intrinsics.checkNotNull(segment2);
if (segment2.limit < 8192 && segment2.owner) {
size2 -= (long) (segment2.limit - segment2.pos);
}
return size2;
}
public byte readByte() throws EOFException {
if (size() != 0) {
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
int i = segment.pos;
int i2 = segment.limit;
int i3 = i + 1;
byte b = segment.data[i];
setSize$okio(size() - 1);
if (i3 == i2) {
this.head = segment.pop();
SegmentPool.recycle(segment);
} else {
segment.pos = i3;
}
return b;
}
throw new EOFException();
}
public final byte getByte(long j) {
Util.checkOffsetAndCount(size(), j, 1);
Segment segment = this.head;
if (segment == null) {
Segment segment2 = null;
Intrinsics.checkNotNull((Object) null);
return null.data[(int) ((((long) null.pos) + j) - -1)];
} else if (size() - j < j) {
long size2 = size();
while (size2 > j) {
segment = segment.prev;
Intrinsics.checkNotNull(segment);
size2 -= (long) (segment.limit - segment.pos);
}
Intrinsics.checkNotNull(segment);
return segment.data[(int) ((((long) segment.pos) + j) - size2)];
} else {
long j2 = 0;
while (true) {
long j3 = ((long) (segment.limit - segment.pos)) + j2;
if (j3 > j) {
Intrinsics.checkNotNull(segment);
return segment.data[(int) ((((long) segment.pos) + j) - j2)];
}
segment = segment.next;
Intrinsics.checkNotNull(segment);
j2 = j3;
}
}
}
public short readShort() throws EOFException {
if (size() >= 2) {
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
int i = segment.pos;
int i2 = segment.limit;
if (i2 - i < 2) {
return (short) (((readByte() & 255) << 8) | (readByte() & 255));
}
byte[] bArr = segment.data;
int i3 = i + 1;
int i4 = i3 + 1;
byte b = ((bArr[i] & 255) << 8) | (bArr[i3] & 255);
setSize$okio(size() - 2);
if (i4 == i2) {
this.head = segment.pop();
SegmentPool.recycle(segment);
} else {
segment.pos = i4;
}
return (short) b;
}
throw new EOFException();
}
public int readInt() throws EOFException {
if (size() >= 4) {
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
int i = segment.pos;
int i2 = segment.limit;
if (((long) (i2 - i)) < 4) {
return ((readByte() & 255) << Ascii.CAN) | ((readByte() & 255) << Ascii.DLE) | ((readByte() & 255) << 8) | (readByte() & 255);
}
byte[] bArr = segment.data;
int i3 = i + 1;
int i4 = i3 + 1;
byte b = ((bArr[i] & 255) << Ascii.CAN) | ((bArr[i3] & 255) << Ascii.DLE);
int i5 = i4 + 1;
byte b2 = b | ((bArr[i4] & 255) << 8);
int i6 = i5 + 1;
byte b3 = b2 | (bArr[i5] & 255);
setSize$okio(size() - 4);
if (i6 == i2) {
this.head = segment.pop();
SegmentPool.recycle(segment);
} else {
segment.pos = i6;
}
return b3;
}
throw new EOFException();
}
public long readLong() throws EOFException {
if (size() >= 8) {
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
int i = segment.pos;
int i2 = segment.limit;
if (((long) (i2 - i)) < 8) {
return ((((long) readInt()) & 4294967295L) << 32) | (4294967295L & ((long) readInt()));
}
byte[] bArr = segment.data;
int i3 = i + 1;
int i4 = i3 + 1;
int i5 = i4 + 1;
long j = ((((long) bArr[i]) & 255) << 56) | ((((long) bArr[i3]) & 255) << 48) | ((((long) bArr[i4]) & 255) << 40);
int i6 = i5 + 1;
long j2 = ((((long) bArr[i5]) & 255) << 32) | j;
int i7 = i6 + 1;
int i8 = i7 + 1;
long j3 = j2 | ((((long) bArr[i6]) & 255) << 24) | ((((long) bArr[i7]) & 255) << 16);
int i9 = i8 + 1;
int i10 = i9 + 1;
long j4 = j3 | ((((long) bArr[i8]) & 255) << 8) | (((long) bArr[i9]) & 255);
setSize$okio(size() - 8);
if (i10 == i2) {
this.head = segment.pop();
SegmentPool.recycle(segment);
} else {
segment.pos = i10;
}
return j4;
}
throw new EOFException();
}
/* JADX WARNING: Code restructure failed: missing block: B:17:0x0047, code lost:
r1 = new okio.Buffer().writeDecimalLong(r3).writeByte((int) r13);
*/
/* JADX WARNING: Code restructure failed: missing block: B:18:0x0054, code lost:
if (r6 != false) goto L_0x0059;
*/
/* JADX WARNING: Code restructure failed: missing block: B:19:0x0056, code lost:
r1.readByte();
*/
/* JADX WARNING: Code restructure failed: missing block: B:21:0x0075, code lost:
throw new java.lang.NumberFormatException("Number too large: " + r1.readUtf8());
*/
/* JADX WARNING: Code restructure failed: missing block: B:32:0x00b0, code lost:
if (r10 != r11) goto L_0x00bc;
*/
/* JADX WARNING: Code restructure failed: missing block: B:33:0x00b2, code lost:
r0.head = r16.pop();
okio.SegmentPool.recycle(r16);
*/
/* JADX WARNING: Code restructure failed: missing block: B:34:0x00bc, code lost:
r16.pos = r10;
*/
/* JADX WARNING: Code restructure failed: missing block: B:35:0x00c0, code lost:
if (r7 != false) goto L_0x00c6;
*/
/* JADX WARNING: Removed duplicated region for block: B:28:0x008e */
/* JADX WARNING: Removed duplicated region for block: B:45:0x0090 A[SYNTHETIC] */
/* Code decompiled incorrectly, please refer to instructions dump. */
public long readDecimalLong() throws java.io.EOFException {
/*
r17 = this;
r0 = r17
long r1 = r17.size()
r3 = 0
int r5 = (r1 > r3 ? 1 : (r1 == r3 ? 0 : -1))
if (r5 == 0) goto L_0x00d4
r1 = -7
r5 = 0
r6 = 0
r7 = 0
L_0x0011:
okio.Segment r8 = r0.head
kotlin.jvm.internal.Intrinsics.checkNotNull(r8)
byte[] r9 = r8.data
int r10 = r8.pos
int r11 = r8.limit
L_0x001c:
r12 = 1
if (r10 >= r11) goto L_0x00ad
byte r13 = r9[r10]
r14 = 48
byte r14 = (byte) r14
if (r13 < r14) goto L_0x0076
r15 = 57
byte r15 = (byte) r15
if (r13 > r15) goto L_0x0076
int r14 = r14 - r13
r15 = -922337203685477580(0xf333333333333334, double:-8.390303882365713E246)
int r12 = (r3 > r15 ? 1 : (r3 == r15 ? 0 : -1))
if (r12 < 0) goto L_0x0047
r15 = r7
r16 = r8
if (r12 != 0) goto L_0x0040
long r7 = (long) r14
int r12 = (r7 > r1 ? 1 : (r7 == r1 ? 0 : -1))
if (r12 >= 0) goto L_0x0040
goto L_0x0047
L_0x0040:
r7 = 10
long r3 = r3 * r7
long r7 = (long) r14
long r3 = r3 + r7
goto L_0x0084
L_0x0047:
okio.Buffer r1 = new okio.Buffer
r1.<init>()
okio.Buffer r1 = r1.writeDecimalLong((long) r3)
okio.Buffer r1 = r1.writeByte((int) r13)
if (r6 != 0) goto L_0x0059
r1.readByte()
L_0x0059:
java.lang.NumberFormatException r2 = new java.lang.NumberFormatException
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>()
java.lang.String r4 = "Number too large: "
r3.append(r4)
java.lang.String r1 = r1.readUtf8()
r3.append(r1)
java.lang.String r1 = r3.toString()
r2.<init>(r1)
java.lang.Throwable r2 = (java.lang.Throwable) r2
throw r2
L_0x0076:
r15 = r7
r16 = r8
r7 = 45
byte r7 = (byte) r7
if (r13 != r7) goto L_0x008c
if (r5 != 0) goto L_0x008c
r6 = 1
long r1 = r1 - r6
r6 = 1
L_0x0084:
int r10 = r10 + 1
int r5 = r5 + 1
r7 = r15
r8 = r16
goto L_0x001c
L_0x008c:
if (r5 == 0) goto L_0x0090
r7 = 1
goto L_0x00b0
L_0x0090:
java.lang.NumberFormatException r1 = new java.lang.NumberFormatException
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r3 = "Expected leading [0-9] or '-' character but was 0x"
r2.append(r3)
java.lang.String r3 = okio.Util.toHexString((byte) r13)
r2.append(r3)
java.lang.String r2 = r2.toString()
r1.<init>(r2)
java.lang.Throwable r1 = (java.lang.Throwable) r1
throw r1
L_0x00ad:
r15 = r7
r16 = r8
L_0x00b0:
if (r10 != r11) goto L_0x00bc
okio.Segment r8 = r16.pop()
r0.head = r8
okio.SegmentPool.recycle(r16)
goto L_0x00c0
L_0x00bc:
r8 = r16
r8.pos = r10
L_0x00c0:
if (r7 != 0) goto L_0x00c6
okio.Segment r8 = r0.head
if (r8 != 0) goto L_0x0011
L_0x00c6:
long r1 = r17.size()
long r7 = (long) r5
long r1 = r1 - r7
r0.setSize$okio(r1)
if (r6 == 0) goto L_0x00d2
goto L_0x00d3
L_0x00d2:
long r3 = -r3
L_0x00d3:
return r3
L_0x00d4:
java.io.EOFException r1 = new java.io.EOFException
r1.<init>()
java.lang.Throwable r1 = (java.lang.Throwable) r1
throw r1
*/
throw new UnsupportedOperationException("Method not decompiled: okio.Buffer.readDecimalLong():long");
}
/* JADX WARNING: Code restructure failed: missing block: B:28:0x009e, code lost:
if (r8 != r9) goto L_0x00aa;
*/
/* JADX WARNING: Code restructure failed: missing block: B:29:0x00a0, code lost:
r15.head = r6.pop();
okio.SegmentPool.recycle(r6);
*/
/* JADX WARNING: Code restructure failed: missing block: B:30:0x00aa, code lost:
r6.pos = r8;
*/
/* JADX WARNING: Code restructure failed: missing block: B:31:0x00ac, code lost:
if (r1 != false) goto L_0x00b2;
*/
/* JADX WARNING: Removed duplicated region for block: B:25:0x007f */
/* JADX WARNING: Removed duplicated region for block: B:41:0x0081 A[SYNTHETIC] */
/* Code decompiled incorrectly, please refer to instructions dump. */
public long readHexadecimalUnsignedLong() throws java.io.EOFException {
/*
r15 = this;
long r0 = r15.size()
r2 = 0
int r4 = (r0 > r2 ? 1 : (r0 == r2 ? 0 : -1))
if (r4 == 0) goto L_0x00bc
r0 = 0
r4 = r2
r1 = 0
L_0x000d:
okio.Segment r6 = r15.head
kotlin.jvm.internal.Intrinsics.checkNotNull(r6)
byte[] r7 = r6.data
int r8 = r6.pos
int r9 = r6.limit
L_0x0018:
if (r8 >= r9) goto L_0x009e
byte r10 = r7[r8]
r11 = 48
byte r11 = (byte) r11
if (r10 < r11) goto L_0x0029
r12 = 57
byte r12 = (byte) r12
if (r10 > r12) goto L_0x0029
int r11 = r10 - r11
goto L_0x0043
L_0x0029:
r11 = 97
byte r11 = (byte) r11
if (r10 < r11) goto L_0x0038
r12 = 102(0x66, float:1.43E-43)
byte r12 = (byte) r12
if (r10 > r12) goto L_0x0038
L_0x0033:
int r11 = r10 - r11
int r11 = r11 + 10
goto L_0x0043
L_0x0038:
r11 = 65
byte r11 = (byte) r11
if (r10 < r11) goto L_0x007d
r12 = 70
byte r12 = (byte) r12
if (r10 > r12) goto L_0x007d
goto L_0x0033
L_0x0043:
r12 = -1152921504606846976(0xf000000000000000, double:-3.105036184601418E231)
long r12 = r12 & r4
int r14 = (r12 > r2 ? 1 : (r12 == r2 ? 0 : -1))
if (r14 != 0) goto L_0x0053
r10 = 4
long r4 = r4 << r10
long r10 = (long) r11
long r4 = r4 | r10
int r8 = r8 + 1
int r0 = r0 + 1
goto L_0x0018
L_0x0053:
okio.Buffer r0 = new okio.Buffer
r0.<init>()
okio.Buffer r0 = r0.writeHexadecimalUnsignedLong((long) r4)
okio.Buffer r0 = r0.writeByte((int) r10)
java.lang.NumberFormatException r1 = new java.lang.NumberFormatException
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r3 = "Number too large: "
r2.append(r3)
java.lang.String r0 = r0.readUtf8()
r2.append(r0)
java.lang.String r0 = r2.toString()
r1.<init>(r0)
java.lang.Throwable r1 = (java.lang.Throwable) r1
throw r1
L_0x007d:
if (r0 == 0) goto L_0x0081
r1 = 1
goto L_0x009e
L_0x0081:
java.lang.NumberFormatException r0 = new java.lang.NumberFormatException
java.lang.StringBuilder r1 = new java.lang.StringBuilder
r1.<init>()
java.lang.String r2 = "Expected leading [0-9a-fA-F] character but was 0x"
r1.append(r2)
java.lang.String r2 = okio.Util.toHexString((byte) r10)
r1.append(r2)
java.lang.String r1 = r1.toString()
r0.<init>(r1)
java.lang.Throwable r0 = (java.lang.Throwable) r0
throw r0
L_0x009e:
if (r8 != r9) goto L_0x00aa
okio.Segment r7 = r6.pop()
r15.head = r7
okio.SegmentPool.recycle(r6)
goto L_0x00ac
L_0x00aa:
r6.pos = r8
L_0x00ac:
if (r1 != 0) goto L_0x00b2
okio.Segment r6 = r15.head
if (r6 != 0) goto L_0x000d
L_0x00b2:
long r1 = r15.size()
long r6 = (long) r0
long r1 = r1 - r6
r15.setSize$okio(r1)
return r4
L_0x00bc:
java.io.EOFException r0 = new java.io.EOFException
r0.<init>()
java.lang.Throwable r0 = (java.lang.Throwable) r0
throw r0
*/
throw new UnsupportedOperationException("Method not decompiled: okio.Buffer.readHexadecimalUnsignedLong():long");
}
public ByteString readByteString() {
return readByteString(size());
}
public ByteString readByteString(long j) throws EOFException {
if (!(j >= 0 && j <= ((long) Integer.MAX_VALUE))) {
throw new IllegalArgumentException(("byteCount: " + j).toString());
} else if (size() < j) {
throw new EOFException();
} else if (j < ((long) 4096)) {
return new ByteString(readByteArray(j));
} else {
ByteString snapshot = snapshot((int) j);
skip(j);
return snapshot;
}
}
public int select(Options options) {
Intrinsics.checkNotNullParameter(options, "options");
int selectPrefix$default = BufferKt.selectPrefix$default(this, options, false, 2, (Object) null);
if (selectPrefix$default == -1) {
return -1;
}
skip((long) options.getByteStrings$okio()[selectPrefix$default].size());
return selectPrefix$default;
}
public void readFully(Buffer buffer, long j) throws EOFException {
Intrinsics.checkNotNullParameter(buffer, "sink");
if (size() >= j) {
buffer.write(this, j);
} else {
buffer.write(this, size());
throw new EOFException();
}
}
public long readAll(Sink sink) throws IOException {
Intrinsics.checkNotNullParameter(sink, "sink");
long size2 = size();
if (size2 > 0) {
sink.write(this, size2);
}
return size2;
}
public String readUtf8Line() throws EOFException {
long indexOf = indexOf((byte) 10);
if (indexOf != -1) {
return BufferKt.readUtf8Line(this, indexOf);
}
if (size() != 0) {
return readUtf8(size());
}
return null;
}
public String readUtf8LineStrict(long j) throws EOFException {
if (j >= 0) {
long j2 = Long.MAX_VALUE;
if (j != Long.MAX_VALUE) {
j2 = j + 1;
}
byte b = (byte) 10;
long indexOf = indexOf(b, 0, j2);
if (indexOf != -1) {
return BufferKt.readUtf8Line(this, indexOf);
}
if (j2 < size() && getByte(j2 - 1) == ((byte) 13) && getByte(j2) == b) {
return BufferKt.readUtf8Line(this, j2);
}
Buffer buffer = new Buffer();
copyTo(buffer, 0, Math.min((long) 32, size()));
throw new EOFException("\\n not found: limit=" + Math.min(size(), j) + " content=" + buffer.readByteString().hex() + Typography.ellipsis);
}
throw new IllegalArgumentException(("limit < 0: " + j).toString());
}
public int readUtf8CodePoint() throws EOFException {
byte b;
int i;
byte b2;
if (size() != 0) {
byte b3 = getByte(0);
int i2 = 1;
if ((b3 & 128) == 0) {
b2 = b3 & Byte.MAX_VALUE;
i = 1;
b = 0;
} else if ((b3 & 224) == 192) {
b2 = b3 & Ascii.US;
i = 2;
b = 128;
} else if ((b3 & 240) == 224) {
b2 = b3 & Ascii.SI;
i = 3;
b = 2048;
} else if ((b3 & 248) == 240) {
b2 = b3 & 7;
i = 4;
b = 65536;
} else {
skip(1);
return Utf8.REPLACEMENT_CODE_POINT;
}
long j = (long) i;
if (size() >= j) {
while (i2 < i) {
long j2 = (long) i2;
byte b4 = getByte(j2);
if ((b4 & 192) == 128) {
b2 = (b2 << 6) | (b4 & Utf8.REPLACEMENT_BYTE);
i2++;
} else {
skip(j2);
return Utf8.REPLACEMENT_CODE_POINT;
}
}
skip(j);
if (b2 > 1114111) {
return Utf8.REPLACEMENT_CODE_POINT;
}
if ((55296 <= b2 && 57343 >= b2) || b2 < b) {
return Utf8.REPLACEMENT_CODE_POINT;
}
return b2;
}
throw new EOFException("size < " + i + ": " + size() + " (to read code point prefixed 0x" + Util.toHexString(b3) + ')');
}
throw new EOFException();
}
public byte[] readByteArray() {
return readByteArray(size());
}
public byte[] readByteArray(long j) throws EOFException {
if (!(j >= 0 && j <= ((long) Integer.MAX_VALUE))) {
throw new IllegalArgumentException(("byteCount: " + j).toString());
} else if (size() >= j) {
byte[] bArr = new byte[((int) j)];
readFully(bArr);
return bArr;
} else {
throw new EOFException();
}
}
public int read(byte[] bArr) {
Intrinsics.checkNotNullParameter(bArr, "sink");
return read(bArr, 0, bArr.length);
}
public void readFully(byte[] bArr) throws EOFException {
Intrinsics.checkNotNullParameter(bArr, "sink");
int i = 0;
while (i < bArr.length) {
int read = read(bArr, i, bArr.length - i);
if (read != -1) {
i += read;
} else {
throw new EOFException();
}
}
}
public int read(byte[] bArr, int i, int i2) {
Intrinsics.checkNotNullParameter(bArr, "sink");
Util.checkOffsetAndCount((long) bArr.length, (long) i, (long) i2);
Segment segment = this.head;
if (segment == null) {
return -1;
}
int min = Math.min(i2, segment.limit - segment.pos);
ArraysKt.copyInto(segment.data, bArr, i, segment.pos, segment.pos + min);
segment.pos += min;
setSize$okio(size() - ((long) min));
if (segment.pos != segment.limit) {
return min;
}
this.head = segment.pop();
SegmentPool.recycle(segment);
return min;
}
public final void clear() {
skip(size());
}
public void skip(long j) throws EOFException {
while (j > 0) {
Segment segment = this.head;
if (segment != null) {
int min = (int) Math.min(j, (long) (segment.limit - segment.pos));
long j2 = (long) min;
setSize$okio(size() - j2);
j -= j2;
segment.pos += min;
if (segment.pos == segment.limit) {
this.head = segment.pop();
SegmentPool.recycle(segment);
}
} else {
throw new EOFException();
}
}
}
public Buffer write(ByteString byteString) {
Intrinsics.checkNotNullParameter(byteString, "byteString");
byteString.write$okio(this, 0, byteString.size());
return this;
}
public Buffer write(ByteString byteString, int i, int i2) {
Intrinsics.checkNotNullParameter(byteString, "byteString");
byteString.write$okio(this, i, i2);
return this;
}
public Buffer writeUtf8(String str, int i, int i2) {
int i3;
char c;
Intrinsics.checkNotNullParameter(str, "string");
if (i >= 0) {
if (i2 >= i) {
if (i2 <= str.length()) {
while (i < i2) {
char charAt = str.charAt(i);
if (charAt < 128) {
Segment writableSegment$okio = writableSegment$okio(1);
byte[] bArr = writableSegment$okio.data;
int i4 = writableSegment$okio.limit - i;
int min = Math.min(i2, 8192 - i4);
i3 = i + 1;
bArr[i + i4] = (byte) charAt;
while (i3 < min) {
char charAt2 = str.charAt(i3);
if (charAt2 >= 128) {
break;
}
bArr[i3 + i4] = (byte) charAt2;
i3++;
}
int i5 = (i4 + i3) - writableSegment$okio.limit;
writableSegment$okio.limit += i5;
setSize$okio(size() + ((long) i5));
} else {
if (charAt < 2048) {
Segment writableSegment$okio2 = writableSegment$okio(2);
writableSegment$okio2.data[writableSegment$okio2.limit] = (byte) ((charAt >> 6) | 192);
writableSegment$okio2.data[writableSegment$okio2.limit + 1] = (byte) ((charAt & '?') | 128);
writableSegment$okio2.limit += 2;
setSize$okio(size() + 2);
} else if (charAt < 55296 || charAt > 57343) {
Segment writableSegment$okio3 = writableSegment$okio(3);
writableSegment$okio3.data[writableSegment$okio3.limit] = (byte) ((charAt >> 12) | 224);
writableSegment$okio3.data[writableSegment$okio3.limit + 1] = (byte) ((63 & (charAt >> 6)) | 128);
writableSegment$okio3.data[writableSegment$okio3.limit + 2] = (byte) ((charAt & '?') | 128);
writableSegment$okio3.limit += 3;
setSize$okio(size() + 3);
} else {
i3 = i + 1;
if (i3 < i2) {
c = str.charAt(i3);
} else {
c = 0;
}
if (charAt > 56319 || 56320 > c || 57343 < c) {
writeByte(63);
} else {
int i6 = (((charAt & 1023) << 10) | (c & 1023)) + 0;
Segment writableSegment$okio4 = writableSegment$okio(4);
writableSegment$okio4.data[writableSegment$okio4.limit] = (byte) ((i6 >> 18) | PsExtractor.VIDEO_STREAM_MASK);
writableSegment$okio4.data[writableSegment$okio4.limit + 1] = (byte) (((i6 >> 12) & 63) | 128);
writableSegment$okio4.data[writableSegment$okio4.limit + 2] = (byte) (((i6 >> 6) & 63) | 128);
writableSegment$okio4.data[writableSegment$okio4.limit + 3] = (byte) ((i6 & 63) | 128);
writableSegment$okio4.limit += 4;
setSize$okio(size() + 4);
i += 2;
}
}
i++;
}
i = i3;
}
return this;
}
throw new IllegalArgumentException(("endIndex > string.length: " + i2 + " > " + str.length()).toString());
}
throw new IllegalArgumentException(("endIndex < beginIndex: " + i2 + " < " + i).toString());
}
throw new IllegalArgumentException(("beginIndex < 0: " + i).toString());
}
public Buffer writeUtf8CodePoint(int i) {
if (i < 128) {
writeByte(i);
} else if (i < 2048) {
Segment writableSegment$okio = writableSegment$okio(2);
writableSegment$okio.data[writableSegment$okio.limit] = (byte) ((i >> 6) | 192);
writableSegment$okio.data[writableSegment$okio.limit + 1] = (byte) ((i & 63) | 128);
writableSegment$okio.limit += 2;
setSize$okio(size() + 2);
} else if (55296 <= i && 57343 >= i) {
writeByte(63);
} else if (i < 65536) {
Segment writableSegment$okio2 = writableSegment$okio(3);
writableSegment$okio2.data[writableSegment$okio2.limit] = (byte) ((i >> 12) | 224);
writableSegment$okio2.data[writableSegment$okio2.limit + 1] = (byte) (((i >> 6) & 63) | 128);
writableSegment$okio2.data[writableSegment$okio2.limit + 2] = (byte) ((i & 63) | 128);
writableSegment$okio2.limit += 3;
setSize$okio(size() + 3);
} else if (i <= 1114111) {
Segment writableSegment$okio3 = writableSegment$okio(4);
writableSegment$okio3.data[writableSegment$okio3.limit] = (byte) ((i >> 18) | PsExtractor.VIDEO_STREAM_MASK);
writableSegment$okio3.data[writableSegment$okio3.limit + 1] = (byte) (((i >> 12) & 63) | 128);
writableSegment$okio3.data[writableSegment$okio3.limit + 2] = (byte) (((i >> 6) & 63) | 128);
writableSegment$okio3.data[writableSegment$okio3.limit + 3] = (byte) ((i & 63) | 128);
writableSegment$okio3.limit += 4;
setSize$okio(size() + 4);
} else {
throw new IllegalArgumentException("Unexpected code point: 0x" + Util.toHexString(i));
}
return this;
}
public Buffer write(byte[] bArr) {
Intrinsics.checkNotNullParameter(bArr, "source");
return write(bArr, 0, bArr.length);
}
public Buffer write(byte[] bArr, int i, int i2) {
Intrinsics.checkNotNullParameter(bArr, "source");
long j = (long) i2;
Util.checkOffsetAndCount((long) bArr.length, (long) i, j);
int i3 = i2 + i;
while (i < i3) {
Segment writableSegment$okio = writableSegment$okio(1);
int min = Math.min(i3 - i, 8192 - writableSegment$okio.limit);
int i4 = i + min;
ArraysKt.copyInto(bArr, writableSegment$okio.data, writableSegment$okio.limit, i, i4);
writableSegment$okio.limit += min;
i = i4;
}
setSize$okio(size() + j);
return this;
}
public long writeAll(Source source) throws IOException {
Intrinsics.checkNotNullParameter(source, "source");
long j = 0;
while (true) {
long read = source.read(this, (long) 8192);
if (read == -1) {
return j;
}
j += read;
}
}
public Buffer write(Source source, long j) throws IOException {
Intrinsics.checkNotNullParameter(source, "source");
while (j > 0) {
long read = source.read(this, j);
if (read != -1) {
j -= read;
} else {
throw new EOFException();
}
}
return this;
}
public Buffer writeByte(int i) {
Segment writableSegment$okio = writableSegment$okio(1);
byte[] bArr = writableSegment$okio.data;
int i2 = writableSegment$okio.limit;
writableSegment$okio.limit = i2 + 1;
bArr[i2] = (byte) i;
setSize$okio(size() + 1);
return this;
}
public Buffer writeShort(int i) {
Segment writableSegment$okio = writableSegment$okio(2);
byte[] bArr = writableSegment$okio.data;
int i2 = writableSegment$okio.limit;
int i3 = i2 + 1;
bArr[i2] = (byte) ((i >>> 8) & 255);
bArr[i3] = (byte) (i & 255);
writableSegment$okio.limit = i3 + 1;
setSize$okio(size() + 2);
return this;
}
public Buffer writeInt(int i) {
Segment writableSegment$okio = writableSegment$okio(4);
byte[] bArr = writableSegment$okio.data;
int i2 = writableSegment$okio.limit;
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);
writableSegment$okio.limit = i5 + 1;
setSize$okio(size() + 4);
return this;
}
public Buffer writeLong(long j) {
Segment writableSegment$okio = writableSegment$okio(8);
byte[] bArr = writableSegment$okio.data;
int i = writableSegment$okio.limit;
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));
writableSegment$okio.limit = i8 + 1;
setSize$okio(size() + 8);
return this;
}
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 < MediaPeriodQueue.INITIAL_RENDERER_POSITION_OFFSET_US ? 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 writableSegment$okio = writableSegment$okio(i2);
byte[] bArr = writableSegment$okio.data;
int i3 = writableSegment$okio.limit + i2;
while (j != 0) {
long j2 = (long) 10;
i3--;
bArr[i3] = BufferKt.getHEX_DIGIT_BYTES()[(int) (j % j2)];
j /= j2;
}
if (z) {
bArr[i3 - 1] = (byte) 45;
}
writableSegment$okio.limit += i2;
setSize$okio(size() + ((long) i2));
return this;
}
public Buffer writeHexadecimalUnsignedLong(long j) {
if (j == 0) {
return writeByte(48);
}
long j2 = (j >>> 1) | j;
long j3 = j2 | (j2 >>> 2);
long j4 = j3 | (j3 >>> 4);
long j5 = j4 | (j4 >>> 8);
long j6 = j5 | (j5 >>> 16);
long j7 = j6 | (j6 >>> 32);
long j8 = j7 - ((j7 >>> 1) & 6148914691236517205L);
long j9 = ((j8 >>> 2) & 3689348814741910323L) + (j8 & 3689348814741910323L);
long j10 = ((j9 >>> 4) + j9) & 1085102592571150095L;
long j11 = j10 + (j10 >>> 8);
long j12 = j11 + (j11 >>> 16);
int i = (int) ((((j12 & 63) + ((j12 >>> 32) & 63)) + ((long) 3)) / ((long) 4));
Segment writableSegment$okio = writableSegment$okio(i);
byte[] bArr = writableSegment$okio.data;
int i2 = writableSegment$okio.limit;
for (int i3 = (writableSegment$okio.limit + i) - 1; i3 >= i2; i3--) {
bArr[i3] = BufferKt.getHEX_DIGIT_BYTES()[(int) (15 & j)];
j >>>= 4;
}
writableSegment$okio.limit += i;
setSize$okio(size() + ((long) i));
return this;
}
public final Segment writableSegment$okio(int i) {
boolean z = true;
if (i < 1 || i > 8192) {
z = false;
}
if (z) {
Segment segment = this.head;
if (segment == null) {
Segment take = SegmentPool.take();
this.head = take;
take.prev = take;
take.next = take;
return take;
}
Intrinsics.checkNotNull(segment);
Segment segment2 = segment.prev;
Intrinsics.checkNotNull(segment2);
if (segment2.limit + i > 8192 || !segment2.owner) {
return segment2.push(SegmentPool.take());
}
return segment2;
}
throw new IllegalArgumentException("unexpected capacity".toString());
}
public void write(Buffer buffer, long j) {
Segment segment;
Intrinsics.checkNotNullParameter(buffer, "source");
if (buffer != this) {
Util.checkOffsetAndCount(buffer.size(), 0, j);
while (j > 0) {
Segment segment2 = buffer.head;
Intrinsics.checkNotNull(segment2);
int i = segment2.limit;
Segment segment3 = buffer.head;
Intrinsics.checkNotNull(segment3);
if (j < ((long) (i - segment3.pos))) {
Segment segment4 = this.head;
if (segment4 != null) {
Intrinsics.checkNotNull(segment4);
segment = segment4.prev;
} else {
segment = null;
}
if (segment != null && segment.owner) {
if ((((long) segment.limit) + j) - ((long) (segment.shared ? 0 : segment.pos)) <= ((long) 8192)) {
Segment segment5 = buffer.head;
Intrinsics.checkNotNull(segment5);
segment5.writeTo(segment, (int) j);
buffer.setSize$okio(buffer.size() - j);
setSize$okio(size() + j);
return;
}
}
Segment segment6 = buffer.head;
Intrinsics.checkNotNull(segment6);
buffer.head = segment6.split((int) j);
}
Segment segment7 = buffer.head;
Intrinsics.checkNotNull(segment7);
long j2 = (long) (segment7.limit - segment7.pos);
buffer.head = segment7.pop();
Segment segment8 = this.head;
if (segment8 == null) {
this.head = segment7;
segment7.prev = segment7;
segment7.next = segment7.prev;
} else {
Intrinsics.checkNotNull(segment8);
Segment segment9 = segment8.prev;
Intrinsics.checkNotNull(segment9);
segment9.push(segment7).compact();
}
buffer.setSize$okio(buffer.size() - j2);
setSize$okio(size() + j2);
j -= j2;
}
return;
}
throw new IllegalArgumentException("source == this".toString());
}
public long read(Buffer buffer, long j) {
Intrinsics.checkNotNullParameter(buffer, "sink");
if (!(j >= 0)) {
throw new IllegalArgumentException(("byteCount < 0: " + j).toString());
} else if (size() == 0) {
return -1;
} else {
if (j > size()) {
j = size();
}
buffer.write(this, j);
return j;
}
}
public long indexOf(byte b, long j, long j2) {
long j3;
int i;
long j4 = 0;
if (0 <= j && j2 >= j) {
if (j2 > size()) {
j2 = size();
}
if (j == j2) {
return -1;
}
Segment segment = this.head;
if (segment != null) {
if (size() - j < j) {
j3 = size();
while (j3 > j) {
segment = segment.prev;
Intrinsics.checkNotNull(segment);
j3 -= (long) (segment.limit - segment.pos);
}
if (segment == null) {
return -1;
}
while (j3 < j2) {
byte[] bArr = segment.data;
int min = (int) Math.min((long) segment.limit, (((long) segment.pos) + j2) - j3);
i = (int) ((((long) segment.pos) + j) - j3);
while (i < min) {
if (bArr[i] != b) {
i++;
}
}
j3 += (long) (segment.limit - segment.pos);
segment = segment.next;
Intrinsics.checkNotNull(segment);
j = j3;
}
return -1;
}
while (true) {
long j5 = ((long) (segment.limit - segment.pos)) + j4;
if (j5 > j) {
break;
}
segment = segment.next;
Intrinsics.checkNotNull(segment);
j4 = j5;
}
if (segment == null) {
return -1;
}
while (j3 < j2) {
byte[] bArr2 = segment.data;
int min2 = (int) Math.min((long) segment.limit, (((long) segment.pos) + j2) - j3);
int i2 = (int) ((((long) segment.pos) + j) - j3);
while (i < min2) {
if (bArr2[i] != b) {
i2 = i + 1;
}
}
j4 = j3 + ((long) (segment.limit - segment.pos));
segment = segment.next;
Intrinsics.checkNotNull(segment);
j = j4;
}
return -1;
return ((long) (i - segment.pos)) + j3;
}
Segment segment2 = null;
return -1;
}
throw new IllegalArgumentException(("size=" + size() + " fromIndex=" + j + " toIndex=" + j2).toString());
}
public long indexOf(ByteString byteString, long j) throws IOException {
long j2 = j;
Intrinsics.checkNotNullParameter(byteString, "bytes");
if (byteString.size() > 0) {
long j3 = 0;
if (j2 >= 0) {
Segment segment = this.head;
if (segment == null) {
Segment segment2 = null;
} else if (size() - j2 < j2) {
long size2 = size();
while (size2 > j2) {
segment = segment.prev;
Intrinsics.checkNotNull(segment);
size2 -= (long) (segment.limit - segment.pos);
}
if (segment != null) {
byte[] internalArray$okio = byteString.internalArray$okio();
byte b = internalArray$okio[0];
int size3 = byteString.size();
long size4 = (size() - ((long) size3)) + 1;
while (size2 < size4) {
byte[] bArr = segment.data;
long j4 = size2;
int min = (int) Math.min((long) segment.limit, (((long) segment.pos) + size4) - size2);
long j5 = ((long) segment.pos) + j2;
long j6 = j4;
for (int i = (int) (j5 - j6); i < min; i++) {
if (bArr[i] == b && BufferKt.rangeEquals(segment, i + 1, internalArray$okio, 1, size3)) {
return ((long) (i - segment.pos)) + j6;
}
}
size2 = j6 + ((long) (segment.limit - segment.pos));
segment = segment.next;
Intrinsics.checkNotNull(segment);
j2 = size2;
}
}
} else {
while (true) {
long j7 = ((long) (segment.limit - segment.pos)) + j3;
if (j7 > j2) {
break;
}
segment = segment.next;
Intrinsics.checkNotNull(segment);
j3 = j7;
}
if (segment != null) {
byte[] internalArray$okio2 = byteString.internalArray$okio();
byte b2 = internalArray$okio2[0];
int size5 = byteString.size();
long size6 = (size() - ((long) size5)) + 1;
while (j3 < size6) {
byte[] bArr2 = segment.data;
long j8 = size6;
int min2 = (int) Math.min((long) segment.limit, (((long) segment.pos) + size6) - j3);
for (int i2 = (int) ((((long) segment.pos) + j2) - j3); i2 < min2; i2++) {
if (bArr2[i2] == b2) {
if (BufferKt.rangeEquals(segment, i2 + 1, internalArray$okio2, 1, size5)) {
return ((long) (i2 - segment.pos)) + j3;
}
}
}
j3 += (long) (segment.limit - segment.pos);
segment = segment.next;
Intrinsics.checkNotNull(segment);
j2 = j3;
size6 = j8;
}
}
}
return -1;
}
throw new IllegalArgumentException(("fromIndex < 0: " + j2).toString());
}
throw new IllegalArgumentException("bytes is empty".toString());
}
public long indexOfElement(ByteString byteString, long j) {
long j2;
int i;
int i2;
int i3;
Intrinsics.checkNotNullParameter(byteString, "targetBytes");
long j3 = 0;
if (j >= 0) {
Segment segment = this.head;
if (segment != null) {
if (size() - j < j) {
j2 = size();
while (j2 > j) {
segment = segment.prev;
Intrinsics.checkNotNull(segment);
j2 -= (long) (segment.limit - segment.pos);
}
if (segment == null) {
return -1;
}
if (byteString.size() == 2) {
byte b = byteString.getByte(0);
byte b2 = byteString.getByte(1);
while (j2 < size()) {
byte[] bArr = segment.data;
i2 = (int) ((((long) segment.pos) + j) - j2);
int i4 = segment.limit;
while (i2 < i4) {
byte b3 = bArr[i2];
if (!(b3 == b || b3 == b2)) {
i2++;
}
}
j2 += (long) (segment.limit - segment.pos);
segment = segment.next;
Intrinsics.checkNotNull(segment);
j = j2;
}
return -1;
}
byte[] internalArray$okio = byteString.internalArray$okio();
while (j2 < size()) {
byte[] bArr2 = segment.data;
i = (int) ((((long) segment.pos) + j) - j2);
int i5 = segment.limit;
while (i < i5) {
byte b4 = bArr2[i];
for (byte b5 : internalArray$okio) {
if (b4 == b5) {
i3 = segment.pos;
return ((long) (i2 - i3)) + j2;
}
}
i++;
}
j2 += (long) (segment.limit - segment.pos);
segment = segment.next;
Intrinsics.checkNotNull(segment);
j = j2;
}
return -1;
}
while (true) {
long j4 = ((long) (segment.limit - segment.pos)) + j3;
if (j4 > j) {
break;
}
segment = segment.next;
Intrinsics.checkNotNull(segment);
j3 = j4;
}
if (segment == null) {
return -1;
}
if (byteString.size() == 2) {
byte b6 = byteString.getByte(0);
byte b7 = byteString.getByte(1);
while (j2 < size()) {
byte[] bArr3 = segment.data;
int i6 = (int) ((((long) segment.pos) + j) - j2);
int i7 = segment.limit;
while (i2 < i7) {
byte b8 = bArr3[i2];
if (!(b8 == b6 || b8 == b7)) {
i6 = i2 + 1;
}
}
j3 = j2 + ((long) (segment.limit - segment.pos));
segment = segment.next;
Intrinsics.checkNotNull(segment);
j = j3;
}
return -1;
}
byte[] internalArray$okio2 = byteString.internalArray$okio();
while (j2 < size()) {
byte[] bArr4 = segment.data;
int i8 = (int) ((((long) segment.pos) + j) - j2);
int i9 = segment.limit;
while (i < i9) {
byte b9 = bArr4[i];
for (byte b10 : internalArray$okio2) {
if (b9 == b10) {
i3 = segment.pos;
return ((long) (i2 - i3)) + j2;
}
}
i8 = i + 1;
}
j3 = j2 + ((long) (segment.limit - segment.pos));
segment = segment.next;
Intrinsics.checkNotNull(segment);
j = j3;
}
return -1;
i3 = segment.pos;
return ((long) (i2 - i3)) + j2;
}
Segment segment2 = null;
return -1;
}
throw new IllegalArgumentException(("fromIndex < 0: " + j).toString());
}
public boolean rangeEquals(long j, ByteString byteString, int i, int i2) {
Intrinsics.checkNotNullParameter(byteString, "bytes");
if (j < 0 || i < 0 || i2 < 0 || size() - j < ((long) i2) || byteString.size() - i < i2) {
return false;
}
for (int i3 = 0; i3 < i2; i3++) {
if (getByte(((long) i3) + j) != byteString.getByte(i + i3)) {
return false;
}
}
return true;
}
/* JADX WARNING: type inference failed for: r21v0, types: [java.lang.Object] */
/* JADX WARNING: Unknown variable types count: 1 */
/* Code decompiled incorrectly, please refer to instructions dump. */
public boolean equals(java.lang.Object r21) {
/*
r20 = this;
r0 = r20
r1 = r21
r2 = 0
r3 = 1
if (r0 != r1) goto L_0x000b
L_0x0008:
r2 = 1
goto L_0x0082
L_0x000b:
boolean r4 = r1 instanceof okio.Buffer
if (r4 != 0) goto L_0x0011
goto L_0x0082
L_0x0011:
long r4 = r20.size()
okio.Buffer r1 = (okio.Buffer) r1
long r6 = r1.size()
int r8 = (r4 > r6 ? 1 : (r4 == r6 ? 0 : -1))
if (r8 == 0) goto L_0x0020
goto L_0x0082
L_0x0020:
long r4 = r20.size()
r6 = 0
int r8 = (r4 > r6 ? 1 : (r4 == r6 ? 0 : -1))
if (r8 != 0) goto L_0x002b
goto L_0x0008
L_0x002b:
okio.Segment r4 = r0.head
kotlin.jvm.internal.Intrinsics.checkNotNull(r4)
okio.Segment r1 = r1.head
kotlin.jvm.internal.Intrinsics.checkNotNull(r1)
int r5 = r4.pos
int r8 = r1.pos
r9 = r6
L_0x003a:
long r11 = r20.size()
int r13 = (r9 > r11 ? 1 : (r9 == r11 ? 0 : -1))
if (r13 >= 0) goto L_0x0008
int r11 = r4.limit
int r11 = r11 - r5
int r12 = r1.limit
int r12 = r12 - r8
int r11 = java.lang.Math.min(r11, r12)
long r11 = (long) r11
r13 = r6
L_0x004e:
int r15 = (r13 > r11 ? 1 : (r13 == r11 ? 0 : -1))
if (r15 >= 0) goto L_0x006a
byte[] r15 = r4.data
int r16 = r5 + 1
byte r5 = r15[r5]
byte[] r15 = r1.data
int r17 = r8 + 1
byte r8 = r15[r8]
if (r5 == r8) goto L_0x0061
goto L_0x0082
L_0x0061:
r18 = 1
long r13 = r13 + r18
r5 = r16
r8 = r17
goto L_0x004e
L_0x006a:
int r13 = r4.limit
if (r5 != r13) goto L_0x0075
okio.Segment r4 = r4.next
kotlin.jvm.internal.Intrinsics.checkNotNull(r4)
int r5 = r4.pos
L_0x0075:
int r13 = r1.limit
if (r8 != r13) goto L_0x0080
okio.Segment r1 = r1.next
kotlin.jvm.internal.Intrinsics.checkNotNull(r1)
int r8 = r1.pos
L_0x0080:
long r9 = r9 + r11
goto L_0x003a
L_0x0082:
return r2
*/
throw new UnsupportedOperationException("Method not decompiled: okio.Buffer.equals(java.lang.Object):boolean");
}
public int hashCode() {
Segment segment = this.head;
if (segment == null) {
return 0;
}
int i = 1;
do {
int i2 = segment.limit;
for (int i3 = segment.pos; i3 < i2; i3++) {
i = (i * 31) + segment.data[i3];
}
segment = segment.next;
Intrinsics.checkNotNull(segment);
} while (segment != this.head);
return i;
}
public final Buffer copy() {
Buffer buffer = new Buffer();
if (size() != 0) {
Segment segment = this.head;
Intrinsics.checkNotNull(segment);
Segment sharedCopy = segment.sharedCopy();
buffer.head = sharedCopy;
sharedCopy.prev = sharedCopy;
sharedCopy.next = sharedCopy.prev;
for (Segment segment2 = segment.next; segment2 != segment; segment2 = segment2.next) {
Segment segment3 = sharedCopy.prev;
Intrinsics.checkNotNull(segment3);
Intrinsics.checkNotNull(segment2);
segment3.push(segment2.sharedCopy());
}
buffer.setSize$okio(size());
}
return buffer;
}
public final ByteString snapshot() {
if (size() <= ((long) Integer.MAX_VALUE)) {
return snapshot((int) size());
}
throw new IllegalStateException(("size > Int.MAX_VALUE: " + size()).toString());
}
public final ByteString snapshot(int i) {
if (i == 0) {
return ByteString.EMPTY;
}
Util.checkOffsetAndCount(size(), 0, (long) i);
Segment segment = this.head;
int i2 = 0;
int i3 = 0;
int i4 = 0;
while (i3 < i) {
Intrinsics.checkNotNull(segment);
if (segment.limit != segment.pos) {
i3 += segment.limit - segment.pos;
i4++;
segment = segment.next;
} else {
throw new AssertionError("s.limit == s.pos");
}
}
byte[][] bArr = new byte[i4][];
int[] iArr = new int[(i4 * 2)];
Segment segment2 = this.head;
int i5 = 0;
while (i2 < i) {
Intrinsics.checkNotNull(segment2);
bArr[i5] = segment2.data;
i2 += segment2.limit - segment2.pos;
iArr[i5] = Math.min(i2, i);
iArr[((Object[]) bArr).length + i5] = segment2.pos;
segment2.shared = true;
i5++;
segment2 = segment2.next;
}
return new SegmentedByteString(bArr, iArr);
}
}
Download file