ConsoleKt.smali

.class public final Lkotlin/io/ConsoleKt;
.super Ljava/lang/Object;
.source "Console.kt"


# annotations
.annotation system Ldalvik/annotation/SourceDebugExtension;
    value = "SMAP\nConsole.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Console.kt\nkotlin/io/ConsoleKt\n*L\n1#1,228:1\n*E\n"
.end annotation

.annotation runtime Lkotlin/Metadata;
    bv = {
        0x1,
        0x0,
        0x3
    }
    d1 = {
        "\u0000n\n\u0000\n\u0002\u0010\u0008\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0005\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0000\n\u0002\u0010\u000b\n\u0002\u0010\u0005\n\u0002\u0010\u000c\n\u0002\u0010\u0019\n\u0002\u0010\u0006\n\u0002\u0010\u0007\n\u0002\u0010\t\n\u0002\u0010\n\n\u0002\u0008\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0003\u001a\u0013\u0010\t\u001a\u00020\n2\u0008\u0010\u000b\u001a\u0004\u0018\u00010\u000cH\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\rH\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000eH\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000fH\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0010H\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0011H\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0012H\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0001H\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0013H\u0087\u0008\u001a\u0011\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0014H\u0087\u0008\u001a\t\u0010\u0015\u001a\u00020\nH\u0087\u0008\u001a\u0013\u0010\u0015\u001a\u00020\n2\u0008\u0010\u000b\u001a\u0004\u0018\u00010\u000cH\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\rH\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000eH\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000fH\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0010H\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0011H\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0012H\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0001H\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0013H\u0087\u0008\u001a\u0011\u0010\u0015\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u0014H\u0087\u0008\u001a\u0008\u0010\u0016\u001a\u0004\u0018\u00010\u0017\u001a\u001a\u0010\u0016\u001a\u0004\u0018\u00010\u00172\u0006\u0010\u0018\u001a\u00020\u00192\u0006\u0010\u0003\u001a\u00020\u0004H\u0000\u001a\u000c\u0010\u001a\u001a\u00020\r*\u00020\u001bH\u0002\u001a\u000c\u0010\u001c\u001a\u00020\n*\u00020\u001dH\u0002\u001a\u0018\u0010\u001e\u001a\u00020\n*\u00020\u001b2\n\u0010\u001f\u001a\u00060 j\u0002`!H\u0002\u001a$\u0010\"\u001a\u00020\r*\u00020\u00042\u0006\u0010#\u001a\u00020$2\u0006\u0010%\u001a\u00020\u001b2\u0006\u0010&\u001a\u00020\rH\u0002\"\u000e\u0010\u0000\u001a\u00020\u0001X\u0082T\u00a2\u0006\u0002\n\u0000\"\u000e\u0010\u0002\u001a\u00020\u0001X\u0082T\u00a2\u0006\u0002\n\u0000\"\u001b\u0010\u0003\u001a\u00020\u00048BX\u0082\u0084\u0002\u00a2\u0006\u000c\n\u0004\u0008\u0007\u0010\u0008\u001a\u0004\u0008\u0005\u0010\u0006\u00a8\u0006\'"
    }
    d2 = {
        "BUFFER_SIZE",
        "",
        "LINE_SEPARATOR_MAX_LENGTH",
        "decoder",
        "Ljava/nio/charset/CharsetDecoder;",
        "getDecoder",
        "()Ljava/nio/charset/CharsetDecoder;",
        "decoder$delegate",
        "Lkotlin/Lazy;",
        "print",
        "",
        "message",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "println",
        "readLine",
        "",
        "inputStream",
        "Ljava/io/InputStream;",
        "endsWithLineSeparator",
        "Ljava/nio/CharBuffer;",
        "flipBack",
        "Ljava/nio/Buffer;",
        "offloadPrefixTo",
        "builder",
        "Ljava/lang/StringBuilder;",
        "Lkotlin/text/StringBuilder;",
        "tryDecode",
        "byteBuffer",
        "Ljava/nio/ByteBuffer;",
        "charBuffer",
        "isEndOfStream",
        "kotlin-stdlib"
    }
    k = 0x2
    mv = {
        0x1,
        0x1,
        0xf
    }
.end annotation


# static fields
.field static final synthetic $$delegatedProperties:[Lkotlin/reflect/KProperty;

.field private static final BUFFER_SIZE:I = 0x20

.field private static final LINE_SEPARATOR_MAX_LENGTH:I = 0x2

.field private static final decoder$delegate:Lkotlin/Lazy;


# direct methods
.method static constructor <clinit>()V
    .registers 5

    const/4 v0, 0x1

    new-array v0, v0, [Lkotlin/reflect/KProperty;

    new-instance v1, Lkotlin/jvm/internal/PropertyReference0Impl;

    const-class v2, Lkotlin/io/ConsoleKt;

    const-string v3, "kotlin-stdlib"

    invoke-static {v2, v3}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinPackage(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KDeclarationContainer;

    move-result-object v2

    const-string v3, "decoder"

    const-string v4, "getDecoder()Ljava/nio/charset/CharsetDecoder;"

    invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference0Impl;-><init>(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V

    invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->property0(Lkotlin/jvm/internal/PropertyReference0;)Lkotlin/reflect/KProperty0;

    move-result-object v1

    check-cast v1, Lkotlin/reflect/KProperty;

    const/4 v2, 0x0

    aput-object v1, v0, v2

    sput-object v0, Lkotlin/io/ConsoleKt;->$$delegatedProperties:[Lkotlin/reflect/KProperty;

    .line 146
    sget-object v0, Lkotlin/io/ConsoleKt$decoder$2;->INSTANCE:Lkotlin/io/ConsoleKt$decoder$2;

    check-cast v0, Lkotlin/jvm/functions/Function0;

    invoke-static {v0}, Lkotlin/LazyKt;->lazy(Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;

    move-result-object v0

    sput-object v0, Lkotlin/io/ConsoleKt;->decoder$delegate:Lkotlin/Lazy;

    return-void
.end method

.method private static final endsWithLineSeparator(Ljava/nio/CharBuffer;)Z
    .registers 4
    .param p0, "$this$endsWithLineSeparator"    # Ljava/nio/CharBuffer;

    .line 211
    invoke-virtual {p0}, Ljava/nio/CharBuffer;->position()I

    move-result v0

    .line 212
    .local v0, "p":I
    if-lez v0, :cond_12

    add-int/lit8 v1, v0, -0x1

    invoke-virtual {p0, v1}, Ljava/nio/CharBuffer;->get(I)C

    move-result v1

    const/16 v2, 0xa

    if-ne v1, v2, :cond_12

    const/4 v1, 0x1

    goto :goto_13

    :cond_12
    const/4 v1, 0x0

    :goto_13
    return v1
.end method

.method private static final flipBack(Ljava/nio/Buffer;)V
    .registers 2
    .param p0, "$this$flipBack"    # Ljava/nio/Buffer;

    .line 216
    invoke-virtual {p0}, Ljava/nio/Buffer;->limit()I

    move-result v0

    invoke-virtual {p0, v0}, Ljava/nio/Buffer;->position(I)Ljava/nio/Buffer;

    .line 217
    invoke-virtual {p0}, Ljava/nio/Buffer;->capacity()I

    move-result v0

    invoke-virtual {p0, v0}, Ljava/nio/Buffer;->limit(I)Ljava/nio/Buffer;

    .line 218
    return-void
.end method

.method private static final getDecoder()Ljava/nio/charset/CharsetDecoder;
    .registers 3

    sget-object v0, Lkotlin/io/ConsoleKt;->decoder$delegate:Lkotlin/Lazy;

    sget-object v1, Lkotlin/io/ConsoleKt;->$$delegatedProperties:[Lkotlin/reflect/KProperty;

    const/4 v2, 0x0

    aget-object v1, v1, v2

    invoke-interface {v0}, Lkotlin/Lazy;->getValue()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/nio/charset/CharsetDecoder;

    return-object v0
.end method

.method private static final offloadPrefixTo(Ljava/nio/CharBuffer;Ljava/lang/StringBuilder;)V
    .registers 7
    .param p0, "$this$offloadPrefixTo"    # Ljava/nio/CharBuffer;
    .param p1, "builder"    # Ljava/lang/StringBuilder;

    .line 222
    invoke-virtual {p0}, Ljava/nio/CharBuffer;->flip()Ljava/nio/Buffer;

    .line 223
    invoke-virtual {p0}, Ljava/nio/CharBuffer;->limit()I

    move-result v0

    add-int/lit8 v0, v0, -0x1

    const/4 v1, 0x0

    :goto_a
    if-ge v1, v0, :cond_19

    move v2, v1

    .local v2, "it":I
    const/4 v3, 0x0

    .line 224
    .local v3, "$i$a$-repeat-ConsoleKt$offloadPrefixTo$1":I
    invoke-virtual {p0}, Ljava/nio/CharBuffer;->get()C

    move-result v4

    invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    .line 225
    .end local v2    # "it":I
    .end local v3    # "$i$a$-repeat-ConsoleKt$offloadPrefixTo$1":I
    nop

    .line 223
    add-int/lit8 v1, v1, 0x1

    goto :goto_a

    .line 226
    :cond_19
    invoke-virtual {p0}, Ljava/nio/CharBuffer;->compact()Ljava/nio/CharBuffer;

    .line 227
    return-void
.end method

.method private static final print(B)V
    .registers 4
    .param p0, "message"    # B

    const/4 v0, 0x0

    .line 38
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-static {p0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V

    .line 39
    return-void
.end method

.method private static final print(C)V
    .registers 3
    .param p0, "message"    # C

    const/4 v0, 0x0

    .line 50
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->print(C)V

    .line 51
    return-void
.end method

.method private static final print(D)V
    .registers 4
    .param p0, "message"    # D

    const/4 v0, 0x0

    .line 68
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0, p1}, Ljava/io/PrintStream;->print(D)V

    .line 69
    return-void
.end method

.method private static final print(F)V
    .registers 3
    .param p0, "message"    # F

    const/4 v0, 0x0

    .line 62
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->print(F)V

    .line 63
    return-void
.end method

.method private static final print(I)V
    .registers 3
    .param p0, "message"    # I

    const/4 v0, 0x0

    .line 26
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->print(I)V

    .line 27
    return-void
.end method

.method private static final print(J)V
    .registers 4
    .param p0, "message"    # J

    const/4 v0, 0x0

    .line 32
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0, p1}, Ljava/io/PrintStream;->print(J)V

    .line 33
    return-void
.end method

.method private static final print(Ljava/lang/Object;)V
    .registers 3
    .param p0, "message"    # Ljava/lang/Object;

    const/4 v0, 0x0

    .line 20
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V

    .line 21
    return-void
.end method

.method private static final print(S)V
    .registers 4
    .param p0, "message"    # S

    const/4 v0, 0x0

    .line 44
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-static {p0}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V

    .line 45
    return-void
.end method

.method private static final print(Z)V
    .registers 3
    .param p0, "message"    # Z

    const/4 v0, 0x0

    .line 56
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->print(Z)V

    .line 57
    return-void
.end method

.method private static final print([C)V
    .registers 3
    .param p0, "message"    # [C

    const/4 v0, 0x0

    .line 74
    .local v0, "$i$f$print":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->print([C)V

    .line 75
    return-void
.end method

.method private static final println()V
    .registers 2

    const/4 v0, 0x0

    .line 140
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1}, Ljava/io/PrintStream;->println()V

    .line 141
    return-void
.end method

.method private static final println(B)V
    .registers 4
    .param p0, "message"    # B

    const/4 v0, 0x0

    .line 98
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-static {p0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V

    .line 99
    return-void
.end method

.method private static final println(C)V
    .registers 3
    .param p0, "message"    # C

    const/4 v0, 0x0

    .line 110
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->println(C)V

    .line 111
    return-void
.end method

.method private static final println(D)V
    .registers 4
    .param p0, "message"    # D

    const/4 v0, 0x0

    .line 128
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0, p1}, Ljava/io/PrintStream;->println(D)V

    .line 129
    return-void
.end method

.method private static final println(F)V
    .registers 3
    .param p0, "message"    # F

    const/4 v0, 0x0

    .line 122
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->println(F)V

    .line 123
    return-void
.end method

.method private static final println(I)V
    .registers 3
    .param p0, "message"    # I

    const/4 v0, 0x0

    .line 86
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->println(I)V

    .line 87
    return-void
.end method

.method private static final println(J)V
    .registers 4
    .param p0, "message"    # J

    const/4 v0, 0x0

    .line 92
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0, p1}, Ljava/io/PrintStream;->println(J)V

    .line 93
    return-void
.end method

.method private static final println(Ljava/lang/Object;)V
    .registers 3
    .param p0, "message"    # Ljava/lang/Object;

    const/4 v0, 0x0

    .line 80
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V

    .line 81
    return-void
.end method

.method private static final println(S)V
    .registers 4
    .param p0, "message"    # S

    const/4 v0, 0x0

    .line 104
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-static {p0}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V

    .line 105
    return-void
.end method

.method private static final println(Z)V
    .registers 3
    .param p0, "message"    # Z

    const/4 v0, 0x0

    .line 116
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->println(Z)V

    .line 117
    return-void
.end method

.method private static final println([C)V
    .registers 3
    .param p0, "message"    # [C

    const/4 v0, 0x0

    .line 134
    .local v0, "$i$f$println":I
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v1, p0}, Ljava/io/PrintStream;->println([C)V

    .line 135
    return-void
.end method

.method public static final readLine()Ljava/lang/String;
    .registers 2

    .line 153
    sget-object v0, Ljava/lang/System;->in:Ljava/io/InputStream;

    const-string v1, "System.`in`"

    invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    invoke-static {}, Lkotlin/io/ConsoleKt;->getDecoder()Ljava/nio/charset/CharsetDecoder;

    move-result-object v1

    invoke-static {v0, v1}, Lkotlin/io/ConsoleKt;->readLine(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static final readLine(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)Ljava/lang/String;
    .registers 13
    .param p0, "inputStream"    # Ljava/io/InputStream;
    .param p1, "decoder"    # Ljava/nio/charset/CharsetDecoder;

    const-string v0, "inputStream"

    invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    const-string v0, "decoder"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    .line 156
    invoke-virtual {p1}, Ljava/nio/charset/CharsetDecoder;->maxCharsPerByte()F

    move-result v0

    const/4 v1, 0x1

    int-to-float v2, v1

    const/4 v3, 0x0

    cmpg-float v0, v0, v2

    if-gtz v0, :cond_17

    const/4 v0, 0x1

    goto :goto_18

    :cond_17
    const/4 v0, 0x0

    :goto_18
    if-eqz v0, :cond_a4

    .line 158
    const/16 v0, 0x20

    invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;

    move-result-object v0

    .line 159
    .local v0, "byteBuffer":Ljava/nio/ByteBuffer;
    const/4 v2, 0x4

    invoke-static {v2}, Ljava/nio/CharBuffer;->allocate(I)Ljava/nio/CharBuffer;

    move-result-object v2

    .line 160
    .local v2, "charBuffer":Ljava/nio/CharBuffer;
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    .line 162
    .local v4, "stringBuilder":Ljava/lang/StringBuilder;
    invoke-virtual {p0}, Ljava/io/InputStream;->read()I

    move-result v5

    .line 163
    .local v5, "read":I
    const/4 v6, -0x1

    if-ne v5, v6, :cond_33

    const/4 v1, 0x0

    return-object v1

    .line 164
    :cond_33
    nop

    .line 165
    int-to-byte v7, v5

    invoke-virtual {v0, v7}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;

    .line 166
    const-string v7, "byteBuffer"

    invoke-static {v0, v7}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    const-string v7, "charBuffer"

    invoke-static {v2, v7}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    invoke-static {p1, v0, v2, v3}, Lkotlin/io/ConsoleKt;->tryDecode(Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Z

    move-result v7

    if-eqz v7, :cond_59

    .line 167
    invoke-static {v2}, Lkotlin/io/ConsoleKt;->endsWithLineSeparator(Ljava/nio/CharBuffer;)Z

    move-result v7

    if-eqz v7, :cond_4f

    .line 168
    goto :goto_5f

    .line 170
    :cond_4f
    invoke-virtual {v2}, Ljava/nio/CharBuffer;->remaining()I

    move-result v7

    const/4 v8, 0x2

    if-ge v7, v8, :cond_59

    .line 171
    invoke-static {v2, v4}, Lkotlin/io/ConsoleKt;->offloadPrefixTo(Ljava/nio/CharBuffer;Ljava/lang/StringBuilder;)V

    .line 174
    :cond_59
    invoke-virtual {p0}, Ljava/io/InputStream;->read()I

    move-result v5

    .line 175
    if-ne v5, v6, :cond_33

    .line 177
    :goto_5f
    move-object v6, p1

    .local v6, "$this$with":Ljava/nio/charset/CharsetDecoder;
    const/4 v7, 0x0

    .line 178
    .local v7, "$i$a$-with-ConsoleKt$readLine$2":I
    invoke-static {v6, v0, v2, v1}, Lkotlin/io/ConsoleKt;->tryDecode(Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Z

    .line 179
    invoke-virtual {v6}, Ljava/nio/charset/CharsetDecoder;->reset()Ljava/nio/charset/CharsetDecoder;

    .line 177
    .end local v6    # "$this$with":Ljava/nio/charset/CharsetDecoder;
    .end local v7    # "$i$a$-with-ConsoleKt$readLine$2":I
    nop

    .line 182
    move-object v1, v2

    .local v1, "$this$with":Ljava/nio/CharBuffer;
    const/4 v6, 0x0

    .line 183
    .local v6, "$i$a$-with-ConsoleKt$readLine$3":I
    invoke-virtual {v1}, Ljava/nio/CharBuffer;->position()I

    move-result v7

    .line 184
    .local v7, "length":I
    if-lez v7, :cond_8a

    add-int/lit8 v8, v7, -0x1

    invoke-virtual {v1, v8}, Ljava/nio/CharBuffer;->get(I)C

    move-result v8

    const/16 v9, 0xa

    if-ne v8, v9, :cond_8a

    .line 185
    add-int/lit8 v7, v7, -0x1

    .line 186
    if-lez v7, :cond_8a

    add-int/lit8 v8, v7, -0x1

    invoke-virtual {v1, v8}, Ljava/nio/CharBuffer;->get(I)C

    move-result v8

    const/16 v9, 0xd

    if-ne v8, v9, :cond_8a

    .line 187
    add-int/lit8 v7, v7, -0x1

    .line 190
    :cond_8a
    invoke-virtual {v1}, Ljava/nio/CharBuffer;->flip()Ljava/nio/Buffer;

    .line 191
    nop

    :goto_8e
    if-ge v3, v7, :cond_9d

    move v8, v3

    .local v8, "it":I
    const/4 v9, 0x0

    .line 192
    .local v9, "$i$a$-repeat-ConsoleKt$readLine$3$1":I
    invoke-virtual {v1}, Ljava/nio/CharBuffer;->get()C

    move-result v10

    invoke-virtual {v4, v10}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    .line 193
    .end local v8    # "it":I
    .end local v9    # "$i$a$-repeat-ConsoleKt$readLine$3$1":I
    nop

    .line 191
    add-int/lit8 v3, v3, 0x1

    goto :goto_8e

    .line 194
    .end local v7    # "length":I
    :cond_9d
    nop

    .line 182
    .end local v1    # "$this$with":Ljava/nio/CharBuffer;
    .end local v6    # "$i$a$-with-ConsoleKt$readLine$3":I
    nop

    .line 196
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    return-object v1

    .line 156
    .end local v0    # "byteBuffer":Ljava/nio/ByteBuffer;
    .end local v2    # "charBuffer":Ljava/nio/CharBuffer;
    .end local v4    # "stringBuilder":Ljava/lang/StringBuilder;
    .end local v5    # "read":I
    :cond_a4
    const/4 v0, 0x0

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "Encodings with multiple chars per byte are not supported"

    invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    check-cast v0, Ljava/lang/Throwable;

    goto :goto_b4

    :goto_b3
    throw v0

    :goto_b4
    goto :goto_b3
.end method

.method private static final tryDecode(Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Z
    .registers 9
    .param p0, "$this$tryDecode"    # Ljava/nio/charset/CharsetDecoder;
    .param p1, "byteBuffer"    # Ljava/nio/ByteBuffer;
    .param p2, "charBuffer"    # Ljava/nio/CharBuffer;
    .param p3, "isEndOfStream"    # Z

    .line 200
    invoke-virtual {p2}, Ljava/nio/CharBuffer;->position()I

    move-result v0

    .line 201
    .local v0, "positionBefore":I
    invoke-virtual {p1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;

    .line 202
    invoke-virtual {p0, p1, p2, p3}, Ljava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;

    move-result-object v1

    .local v1, "$this$with":Ljava/nio/charset/CoderResult;
    const/4 v2, 0x0

    .line 203
    .local v2, "$i$a$-with-ConsoleKt$tryDecode$1":I
    invoke-virtual {v1}, Ljava/nio/charset/CoderResult;->isError()Z

    move-result v3

    if-eqz v3, :cond_15

    invoke-virtual {v1}, Ljava/nio/charset/CoderResult;->throwException()V

    .line 204
    .end local v1    # "$this$with":Ljava/nio/charset/CoderResult;
    .end local v2    # "$i$a$-with-ConsoleKt$tryDecode$1":I
    :cond_15
    nop

    .line 202
    nop

    .line 205
    invoke-virtual {p2}, Ljava/nio/CharBuffer;->position()I

    move-result v1

    if-le v1, v0, :cond_1f

    const/4 v1, 0x1

    goto :goto_20

    :cond_1f
    const/4 v1, 0x0

    :goto_20
    move v2, v1

    .local v2, "isDecoded":Z
    const/4 v3, 0x0

    .line 206
    .local v3, "$i$a$-also-ConsoleKt$tryDecode$2":I
    if-eqz v2, :cond_28

    invoke-virtual {p1}, Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;

    goto :goto_2e

    :cond_28
    move-object v4, p1

    check-cast v4, Ljava/nio/Buffer;

    invoke-static {v4}, Lkotlin/io/ConsoleKt;->flipBack(Ljava/nio/Buffer;)V

    .line 207
    .end local v2    # "isDecoded":Z
    .end local v3    # "$i$a$-also-ConsoleKt$tryDecode$2":I
    :goto_2e
    nop

    .line 205
    return v1
.end method