fun main() {
    val charToDigit = mapOf('=' to -2, '-' to -1, '0' to 0, '1' to 1, '2' to 2)
    val digitToChar = charToDigit.map { (char, digit) -> digit.toLong() to char }.toMap()

    fun toDecimal(snafu: String) = snafu.toCharArray().reversed().mapIndexed { index, char -> charToDigit[char]!! * 5.pow(index) }.sum()

    fun toSnafu(decimal: Long): String {
        var value = decimal
        var result = ""

        while (value > 0) {
            var digit = value % 5
            if (digit > 2)
                digit -= 5
            value = (value - digit) / 5
            result += digitToChar[digit]!!
        }

        return result.reversed()
    }

    fun part1(input: List<String>) = toSnafu(input.sumOf { toDecimal(it) })

    fun part2(input: List<String>) = "HOHOHO"

    test(
        day = 25,
        testTarget1 = "2=-1=0",
        testTarget2 = "HOHOHO",
        part1 = ::part1,
        part2 = ::part2,
    )
}

Compiled from "Day25.kt"
final class Day25Kt$main$1 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.lang.String> {
  final java.util.Map<java.lang.Character, java.lang.Integer> $charToDigit;

  final java.util.Map<java.lang.Long, java.lang.Character> $digitToChar;

  Day25Kt$main$1(java.util.Map<java.lang.Character, java.lang.Integer>, java.util.Map<java.lang.Long, java.lang.Character>);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #14                 // Field $charToDigit:Ljava/util/Map;
       5: aload_0
       6: aload_2
       7: putfield      #17                 // Field $digitToChar:Ljava/util/Map;
      10: aload_0
      11: iconst_1
      12: ldc           #19                 // class kotlin/jvm/internal/Intrinsics$Kotlin
      14: ldc           #21                 // String part1
      16: ldc           #23                 // String main$part1(Ljava/util/Map;Ljava/util/Map;Ljava/util/List;)Ljava/lang/String;
      18: iconst_0
      19: invokespecial #26                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      22: return

  public final java.lang.String invoke(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #33                 // String p0
       3: invokestatic  #39                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: getfield      #14                 // Field $charToDigit:Ljava/util/Map;
      10: aload_0
      11: getfield      #17                 // Field $digitToChar:Ljava/util/Map;
      14: aload_1
      15: invokestatic  #45                 // Method Day25Kt.access$main$part1:(Ljava/util/Map;Ljava/util/Map;Ljava/util/List;)Ljava/lang/String;
      18: areturn

  public java.lang.Object invoke(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #49                 // class java/util/List
       5: invokevirtual #51                 // Method invoke:(Ljava/util/List;)Ljava/lang/String;
       8: areturn
}

Compiled from "Day25.kt"
final class Day25Kt$main$2 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.lang.String> {
  public static final Day25Kt$main$2 INSTANCE;

  Day25Kt$main$2();
    Code:
       0: aload_0
       1: iconst_1
       2: ldc           #11                 // class kotlin/jvm/internal/Intrinsics$Kotlin
       4: ldc           #13                 // String part2
       6: ldc           #15                 // String main$part2(Ljava/util/List;)Ljava/lang/String;
       8: iconst_0
       9: invokespecial #18                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      12: return

  public final java.lang.String invoke(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #25                 // String p0
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: invokestatic  #36                 // Method Day25Kt.access$main$part2:(Ljava/util/List;)Ljava/lang/String;
      10: areturn

  public java.lang.Object invoke(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #40                 // class java/util/List
       5: invokevirtual #42                 // Method invoke:(Ljava/util/List;)Ljava/lang/String;
       8: areturn

  static {};
    Code:
       0: new           #2                  // class Day25Kt$main$2
       3: dup
       4: invokespecial #47                 // Method "<init>":()V
       7: putstatic     #50                 // Field INSTANCE:LDay25Kt$main$2;
      10: return
}

Compiled from "Day25.kt"
public final class Day25Kt {
  public static final void main();
    Code:
       0: iconst_5
       1: anewarray     #8                  // class kotlin/Pair
       4: astore_1
       5: aload_1
       6: iconst_0
       7: bipush        61
       9: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
      12: bipush        -2
      14: invokestatic  #19                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: invokestatic  #25                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      20: aastore
      21: aload_1
      22: iconst_1
      23: bipush        45
      25: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
      28: iconst_m1
      29: invokestatic  #19                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      32: invokestatic  #25                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      35: aastore
      36: aload_1
      37: iconst_2
      38: bipush        48
      40: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
      43: iconst_0
      44: invokestatic  #19                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      47: invokestatic  #25                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      50: aastore
      51: aload_1
      52: iconst_3
      53: bipush        49
      55: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
      58: iconst_1
      59: invokestatic  #19                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      62: invokestatic  #25                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      65: aastore
      66: aload_1
      67: iconst_4
      68: bipush        50
      70: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
      73: iconst_2
      74: invokestatic  #19                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      77: invokestatic  #25                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      80: aastore
      81: aload_1
      82: invokestatic  #31                 // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
      85: astore_0
      86: aload_0
      87: astore_2
      88: iconst_0
      89: istore_3
      90: aload_2
      91: astore        4
      93: new           #33                 // class java/util/ArrayList
      96: dup
      97: aload_2
      98: invokeinterface #39,  1           // InterfaceMethod java/util/Map.size:()I
     103: invokespecial #43                 // Method java/util/ArrayList."<init>":(I)V
     106: checkcast     #45                 // class java/util/Collection
     109: astore        5
     111: iconst_0
     112: istore        6
     114: aload         4
     116: invokeinterface #49,  1           // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     121: invokeinterface #55,  1           // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     126: astore        7
     128: aload         7
     130: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     135: ifeq          217
     138: aload         7
     140: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     145: checkcast     #67                 // class java/util/Map$Entry
     148: astore        8
     150: aload         5
     152: aload         8
     154: astore        9
     156: astore        13
     158: iconst_0
     159: istore        10
     161: aload         9
     163: invokeinterface #70,  1           // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     168: checkcast     #10                 // class java/lang/Character
     171: invokevirtual #74                 // Method java/lang/Character.charValue:()C
     174: istore        11
     176: aload         9
     178: invokeinterface #77,  1           // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     183: checkcast     #79                 // class java/lang/Number
     186: invokevirtual #82                 // Method java/lang/Number.intValue:()I
     189: istore        12
     191: iload         12
     193: i2l
     194: invokestatic  #87                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     197: iload         11
     199: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     202: invokestatic  #25                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     205: aload         13
     207: swap
     208: invokeinterface #91,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     213: pop
     214: goto          128
     217: aload         5
     219: checkcast     #93                 // class java/util/List
     222: nop
     223: checkcast     #95                 // class java/lang/Iterable
     226: invokestatic  #99                 // Method kotlin/collections/MapsKt.toMap:(Ljava/lang/Iterable;)Ljava/util/Map;
     229: astore_1
     230: bipush        25
     232: ldc           #101                // String 2=-1=0
     234: ldc           #103                // String HOHOHO
     236: new           #105                // class Day25Kt$main$1
     239: dup
     240: aload_0
     241: aload_1
     242: invokespecial #108                // Method Day25Kt$main$1."<init>":(Ljava/util/Map;Ljava/util/Map;)V
     245: checkcast     #110                // class kotlin/jvm/functions/Function1
     248: getstatic     #116                // Field Day25Kt$main$2.INSTANCE:LDay25Kt$main$2;
     251: checkcast     #110                // class kotlin/jvm/functions/Function1
     254: invokestatic  #122                // Method UtilsKt.test:(ILjava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
     257: return

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #143                // Method main:()V
       3: return

  private static final long main$toDecimal(java.util.Map<java.lang.Character, java.lang.Integer>, java.lang.String);
    Code:
       0: aload_1
       1: invokevirtual #154                // Method java/lang/String.toCharArray:()[C
       4: dup
       5: ldc           #156                // String toCharArray(...)
       7: invokestatic  #162                // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      10: invokestatic  #168                // Method kotlin/collections/ArraysKt.reversed:([C)Ljava/util/List;
      13: checkcast     #95                 // class java/lang/Iterable
      16: astore_2
      17: iconst_0
      18: istore_3
      19: aload_2
      20: astore        4
      22: new           #33                 // class java/util/ArrayList
      25: dup
      26: aload_2
      27: bipush        10
      29: invokestatic  #174                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      32: invokespecial #43                 // Method java/util/ArrayList."<init>":(I)V
      35: checkcast     #45                 // class java/util/Collection
      38: astore        5
      40: iconst_0
      41: istore        6
      43: iconst_0
      44: istore        7
      46: aload         4
      48: invokeinterface #175,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      53: astore        8
      55: aload         8
      57: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      62: ifeq          153
      65: aload         8
      67: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      72: astore        9
      74: aload         5
      76: iload         7
      78: iinc          7, 1
      81: istore        10
      83: iload         10
      85: ifge          91
      88: invokestatic  #178                // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
      91: iload         10
      93: aload         9
      95: checkcast     #10                 // class java/lang/Character
      98: invokevirtual #74                 // Method java/lang/Character.charValue:()C
     101: istore        11
     103: istore        12
     105: astore        14
     107: iconst_0
     108: istore        13
     110: aload_0
     111: iload         11
     113: invokestatic  #14                 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     116: invokeinterface #182,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     121: dup
     122: invokestatic  #186                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     125: checkcast     #79                 // class java/lang/Number
     128: invokevirtual #190                // Method java/lang/Number.longValue:()J
     131: iconst_5
     132: iload         12
     134: invokestatic  #194                // Method UtilsKt.pow:(II)J
     137: lmul
     138: invokestatic  #87                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     141: aload         14
     143: swap
     144: invokeinterface #91,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     149: pop
     150: goto          55
     153: aload         5
     155: checkcast     #93                 // class java/util/List
     158: nop
     159: checkcast     #95                 // class java/lang/Iterable
     162: invokestatic  #198                // Method kotlin/collections/CollectionsKt.sumOfLong:(Ljava/lang/Iterable;)J
     165: lreturn

  private static final java.lang.String main$toSnafu(java.util.Map<java.lang.Long, java.lang.Character>, long);
    Code:
       0: lload_1
       1: lstore_3
       2: ldc           #214                // String
       4: astore        5
       6: lload_3
       7: lconst_0
       8: lcmp
       9: ifle          86
      12: lload_3
      13: iconst_5
      14: i2l
      15: lrem
      16: lstore        6
      18: lload         6
      20: ldc2_w        #215                // long 2l
      23: lcmp
      24: ifle          34
      27: lload         6
      29: iconst_5
      30: i2l
      31: lsub
      32: lstore        6
      34: lload_3
      35: lload         6
      37: lsub
      38: iconst_5
      39: i2l
      40: ldiv
      41: lstore_3
      42: new           #218                // class java/lang/StringBuilder
      45: dup
      46: invokespecial #220                // Method java/lang/StringBuilder."<init>":()V
      49: aload         5
      51: invokevirtual #224                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      54: aload_0
      55: lload         6
      57: invokestatic  #87                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      60: invokeinterface #182,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      65: dup
      66: invokestatic  #186                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      69: checkcast     #10                 // class java/lang/Character
      72: invokevirtual #74                 // Method java/lang/Character.charValue:()C
      75: invokevirtual #227                // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      78: invokevirtual #231                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      81: astore        5
      83: goto          6
      86: aload         5
      88: checkcast     #233                // class java/lang/CharSequence
      91: invokestatic  #238                // Method kotlin/text/StringsKt.reversed:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
      94: invokevirtual #239                // Method java/lang/Object.toString:()Ljava/lang/String;
      97: areturn

  private static final java.lang.String main$part1(java.util.Map<java.lang.Character, java.lang.Integer>, java.util.Map<java.lang.Long, java.lang.Character>, java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: aload_2
       2: checkcast     #95                 // class java/lang/Iterable
       5: astore_3
       6: astore        10
       8: lconst_0
       9: lstore        4
      11: aload_3
      12: invokeinterface #175,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      17: astore        6
      19: aload         6
      21: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      26: ifeq          70
      29: aload         6
      31: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      36: astore        7
      38: lload         4
      40: aload         7
      42: checkcast     #150                // class java/lang/String
      45: astore        8
      47: lstore        11
      49: iconst_0
      50: istore        9
      52: aload_0
      53: aload         8
      55: invokestatic  #248                // Method main$toDecimal:(Ljava/util/Map;Ljava/lang/String;)J
      58: lstore        13
      60: lload         11
      62: lload         13
      64: ladd
      65: lstore        4
      67: goto          19
      70: lload         4
      72: lstore        11
      74: aload         10
      76: lload         11
      78: invokestatic  #250                // Method main$toSnafu:(Ljava/util/Map;J)Ljava/lang/String;
      81: areturn

  private static final java.lang.String main$part2(java.util.List<java.lang.String>);
    Code:
       0: ldc           #103                // String HOHOHO
       2: areturn

  public static final java.lang.String access$main$part1(java.util.Map, java.util.Map, java.util.List);
    Code:
       0: aload_0
       1: aload_1
       2: aload_2
       3: invokestatic  #260                // Method main$part1:(Ljava/util/Map;Ljava/util/Map;Ljava/util/List;)Ljava/lang/String;
       6: areturn

  public static final java.lang.String access$main$part2(java.util.List);
    Code:
       0: aload_0
       1: invokestatic  #263                // Method main$part2:(Ljava/util/List;)Ljava/lang/String;
       4: areturn
}


fun main() {
    val inputLineRegex = """move (\d+) from (\d+) to (\d+)""".toRegex()

    fun partX(input: List<String>, moveLogic: (List<ArrayDeque<Char>>, Int, Int, Int) -> Unit): String {
        val stacks = List(9) { ArrayDeque<Char>() }

        for (line in input) {
            if (line.contains('[')) {
                stacks.forEachIndexed { index, chars ->
                    line.getOrNull(index * 4 + 1)?.takeIf { it.isLetter() }?.let {
                        chars.addLast(it)
                    }
                }
            }

            if (line.contains("move")) {
                val (count, from, to) = line.destructured(inputLineRegex)

                moveLogic(stacks, count.toInt(), from.toInt(), to.toInt())
            }
        }

        return stacks.filter { it.isNotEmpty() }.map { it.first() }.joinToString(separator = "")
    }

    fun part1(input: List<String>) = partX(input) { stacks, count, from, to ->
        for (i in 0 until count)
            stacks[to - 1].addFirst(stacks[from - 1].removeFirst())
    }

    fun part2(input: List<String>) = partX(input) { stacks, count, from, to ->
        val queue = ArrayDeque<Char>()

        for (i in 0 until count)
            queue.add(stacks[from - 1].removeFirst())

        while (queue.isNotEmpty())
            stacks[to - 1].addFirst(queue.removeLast())
    }

    test(
        day = 5,
        testTarget1 = "CMZ",
        testTarget2 = "MCD",
        part1 = ::part1,
        part2 = ::part2,
    )
}

Compiled from "Day05.kt"
public final class Day05Kt {
  public static final void main();
    Code:
       0: new           #8                  // class kotlin/text/Regex
       3: dup
       4: ldc           #10                 // String move (\\d+) from (\\d+) to (\\d+)
       6: invokespecial #14                 // Method kotlin/text/Regex."<init>":(Ljava/lang/String;)V
       9: astore_0
      10: iconst_5
      11: ldc           #16                 // String CMZ
      13: ldc           #18                 // String MCD
      15: new           #20                 // class Day05Kt$main$1
      18: dup
      19: aload_0
      20: invokespecial #23                 // Method Day05Kt$main$1."<init>":(Lkotlin/text/Regex;)V
      23: checkcast     #25                 // class kotlin/jvm/functions/Function1
      26: new           #27                 // class Day05Kt$main$2
      29: dup
      30: aload_0
      31: invokespecial #28                 // Method Day05Kt$main$2."<init>":(Lkotlin/text/Regex;)V
      34: checkcast     #25                 // class kotlin/jvm/functions/Function1
      37: invokestatic  #34                 // Method UtilsKt.test:(ILjava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
      40: return

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #39                 // Method main:()V
       3: return

  private static final java.lang.String main$partX(kotlin.text.Regex, java.util.List<java.lang.String>, kotlin.jvm.functions.Function4<? super java.util.List<kotlin.collections.ArrayDeque<java.lang.Character>>, ? super java.lang.Integer, ? super java.lang.Integer, ? super java.lang.Integer, kotlin.Unit>);
    Code:
       0: bipush        9
       2: istore        4
       4: new           #46                 // class java/util/ArrayList
       7: dup
       8: iload         4
      10: invokespecial #49                 // Method java/util/ArrayList."<init>":(I)V
      13: astore        5
      15: iconst_0
      16: istore        6
      18: iload         6
      20: iload         4
      22: if_icmpge     60
      25: iload         6
      27: istore        7
      29: aload         5
      31: iload         7
      33: istore        8
      35: astore        18
      37: iconst_0
      38: istore        9
      40: new           #51                 // class kotlin/collections/ArrayDeque
      43: dup
      44: invokespecial #53                 // Method kotlin/collections/ArrayDeque."<init>":()V
      47: aload         18
      49: swap
      50: invokevirtual #57                 // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
      53: pop
      54: iinc          6, 1
      57: goto          18
      60: aload         5
      62: checkcast     #59                 // class java/util/List
      65: astore_3
      66: aload_1
      67: invokeinterface #63,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      72: astore        4
      74: aload         4
      76: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      81: ifeq          385
      84: aload         4
      86: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      91: checkcast     #75                 // class java/lang/String
      94: astore        5
      96: aload         5
      98: checkcast     #77                 // class java/lang/CharSequence
     101: bipush        91
     103: iconst_0
     104: iconst_2
     105: aconst_null
     106: invokestatic  #83                 // Method kotlin/text/StringsKt.contains$default:(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z
     109: ifeq          260
     112: aload_3
     113: checkcast     #85                 // class java/lang/Iterable
     116: astore        6
     118: iconst_0
     119: istore        7
     121: iconst_0
     122: istore        8
     124: aload         6
     126: invokeinterface #86,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     131: astore        9
     133: aload         9
     135: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     140: ifeq          259
     143: aload         9
     145: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     150: astore        10
     152: iload         8
     154: iinc          8, 1
     157: istore        11
     159: iload         11
     161: ifge          167
     164: invokestatic  #91                 // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
     167: iload         11
     169: aload         10
     171: checkcast     #51                 // class kotlin/collections/ArrayDeque
     174: astore        12
     176: istore        13
     178: iconst_0
     179: istore        14
     181: aload         5
     183: checkcast     #77                 // class java/lang/CharSequence
     186: iload         13
     188: iconst_4
     189: imul
     190: iconst_1
     191: iadd
     192: invokestatic  #95                 // Method kotlin/text/StringsKt.getOrNull:(Ljava/lang/CharSequence;I)Ljava/lang/Character;
     195: dup
     196: ifnull        252
     199: astore        15
     201: aload         15
     203: invokevirtual #101                // Method java/lang/Character.charValue:()C
     206: istore        16
     208: iconst_0
     209: istore        17
     211: iload         16
     213: invokestatic  #105                // Method java/lang/Character.isLetter:(C)Z
     216: nop
     217: ifeq          225
     220: aload         15
     222: goto          226
     225: aconst_null
     226: dup
     227: ifnull        252
     230: invokevirtual #101                // Method java/lang/Character.charValue:()C
     233: istore        16
     235: iconst_0
     236: istore        17
     238: aload         12
     240: iload         16
     242: invokestatic  #109                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     245: invokevirtual #113                // Method kotlin/collections/ArrayDeque.addLast:(Ljava/lang/Object;)V
     248: nop
     249: goto          254
     252: pop
     253: nop
     254: nop
     255: nop
     256: goto          133
     259: nop
     260: aload         5
     262: checkcast     #77                 // class java/lang/CharSequence
     265: ldc           #115                // String move
     267: checkcast     #77                 // class java/lang/CharSequence
     270: iconst_0
     271: iconst_2
     272: aconst_null
     273: invokestatic  #118                // Method kotlin/text/StringsKt.contains$default:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z
     276: ifeq          74
     279: aload         5
     281: aload_0
     282: invokestatic  #122                // Method UtilsKt.destructured:(Ljava/lang/String;Lkotlin/text/Regex;)Lkotlin/text/MatchResult$Destructured;
     285: astore        6
     287: aload         6
     289: invokevirtual #128                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     292: invokeinterface #134,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     297: iconst_1
     298: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     303: checkcast     #75                 // class java/lang/String
     306: astore        7
     308: aload         6
     310: invokevirtual #128                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     313: invokeinterface #134,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     318: iconst_2
     319: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     324: checkcast     #75                 // class java/lang/String
     327: astore        8
     329: aload         6
     331: invokevirtual #128                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     334: invokeinterface #134,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     339: iconst_3
     340: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     345: checkcast     #75                 // class java/lang/String
     348: astore        9
     350: aload_2
     351: aload_3
     352: aload         7
     354: invokestatic  #144                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     357: invokestatic  #147                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     360: aload         8
     362: invokestatic  #144                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     365: invokestatic  #147                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     368: aload         9
     370: invokestatic  #144                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     373: invokestatic  #147                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     376: invokeinterface #153,  5          // InterfaceMethod kotlin/jvm/functions/Function4.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     381: pop
     382: goto          74
     385: aload_3
     386: checkcast     #85                 // class java/lang/Iterable
     389: astore        4
     391: iconst_0
     392: istore        5
     394: aload         4
     396: astore        6
     398: new           #46                 // class java/util/ArrayList
     401: dup
     402: invokespecial #154                // Method java/util/ArrayList."<init>":()V
     405: checkcast     #156                // class java/util/Collection
     408: astore        7
     410: iconst_0
     411: istore        8
     413: aload         6
     415: invokeinterface #86,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     420: astore        9
     422: aload         9
     424: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     429: ifeq          486
     432: aload         9
     434: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     439: astore        10
     441: aload         10
     443: checkcast     #51                 // class kotlin/collections/ArrayDeque
     446: astore        11
     448: iconst_0
     449: istore        12
     451: aload         11
     453: checkcast     #156                // class java/util/Collection
     456: invokeinterface #159,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     461: ifne          468
     464: iconst_1
     465: goto          469
     468: iconst_0
     469: nop
     470: ifeq          422
     473: aload         7
     475: aload         10
     477: invokeinterface #160,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     482: pop
     483: goto          422
     486: aload         7
     488: checkcast     #59                 // class java/util/List
     491: nop
     492: checkcast     #85                 // class java/lang/Iterable
     495: astore        4
     497: nop
     498: iconst_0
     499: istore        5
     501: aload         4
     503: astore        6
     505: new           #46                 // class java/util/ArrayList
     508: dup
     509: aload         4
     511: bipush        10
     513: invokestatic  #164                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     516: invokespecial #49                 // Method java/util/ArrayList."<init>":(I)V
     519: checkcast     #156                // class java/util/Collection
     522: astore        7
     524: iconst_0
     525: istore        8
     527: aload         6
     529: invokeinterface #86,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     534: astore        9
     536: aload         9
     538: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     543: ifeq          595
     546: aload         9
     548: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     553: astore        10
     555: aload         7
     557: aload         10
     559: checkcast     #51                 // class kotlin/collections/ArrayDeque
     562: astore        11
     564: astore        18
     566: iconst_0
     567: istore        12
     569: aload         11
     571: invokevirtual #167                // Method kotlin/collections/ArrayDeque.first:()Ljava/lang/Object;
     574: checkcast     #97                 // class java/lang/Character
     577: invokevirtual #101                // Method java/lang/Character.charValue:()C
     580: invokestatic  #109                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     583: aload         18
     585: swap
     586: invokeinterface #160,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     591: pop
     592: goto          536
     595: aload         7
     597: checkcast     #59                 // class java/util/List
     600: nop
     601: checkcast     #85                 // class java/lang/Iterable
     604: ldc           #169                // String
     606: checkcast     #77                 // class java/lang/CharSequence
     609: aconst_null
     610: aconst_null
     611: iconst_0
     612: aconst_null
     613: aconst_null
     614: bipush        62
     616: aconst_null
     617: invokestatic  #173                // Method kotlin/collections/CollectionsKt.joinToString$default:(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String;
     620: areturn

  private static final kotlin.Unit main$part1$lambda$6(java.util.List, int, int, int);
    Code:
       0: aload_0
       1: ldc           #216                // String stacks
       3: invokestatic  #222                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: iconst_0
       7: istore        4
       9: iload         4
      11: iload_1
      12: if_icmpge     51
      15: aload_0
      16: iload_3
      17: iconst_1
      18: isub
      19: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      24: checkcast     #51                 // class kotlin/collections/ArrayDeque
      27: aload_0
      28: iload_2
      29: iconst_1
      30: isub
      31: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      36: checkcast     #51                 // class kotlin/collections/ArrayDeque
      39: invokevirtual #225                // Method kotlin/collections/ArrayDeque.removeFirst:()Ljava/lang/Object;
      42: invokevirtual #228                // Method kotlin/collections/ArrayDeque.addFirst:(Ljava/lang/Object;)V
      45: iinc          4, 1
      48: goto          9
      51: getstatic     #234                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      54: areturn

  private static final java.lang.String main$part1(kotlin.text.Regex, java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: aload_1
       2: invokedynamic #254,  0            // InvokeDynamic #0:invoke:()Lkotlin/jvm/functions/Function4;
       7: invokestatic  #256                // Method main$partX:(Lkotlin/text/Regex;Ljava/util/List;Lkotlin/jvm/functions/Function4;)Ljava/lang/String;
      10: areturn

  private static final kotlin.Unit main$part2$lambda$7(java.util.List, int, int, int);
    Code:
       0: aload_0
       1: ldc           #216                // String stacks
       3: invokestatic  #222                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #51                 // class kotlin/collections/ArrayDeque
       9: dup
      10: invokespecial #53                 // Method kotlin/collections/ArrayDeque."<init>":()V
      13: astore        4
      15: iconst_0
      16: istore        5
      18: iload         5
      20: iload_1
      21: if_icmpge     51
      24: aload         4
      26: aload_0
      27: iload_2
      28: iconst_1
      29: isub
      30: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      35: checkcast     #51                 // class kotlin/collections/ArrayDeque
      38: invokevirtual #225                // Method kotlin/collections/ArrayDeque.removeFirst:()Ljava/lang/Object;
      41: invokevirtual #258                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
      44: pop
      45: iinc          5, 1
      48: goto          18
      51: aload         4
      53: checkcast     #156                // class java/util/Collection
      56: invokeinterface #159,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
      61: ifne          68
      64: iconst_1
      65: goto          69
      68: iconst_0
      69: ifeq          95
      72: aload_0
      73: iload_3
      74: iconst_1
      75: isub
      76: invokeinterface #138,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      81: checkcast     #51                 // class kotlin/collections/ArrayDeque
      84: aload         4
      86: invokevirtual #261                // Method kotlin/collections/ArrayDeque.removeLast:()Ljava/lang/Object;
      89: invokevirtual #228                // Method kotlin/collections/ArrayDeque.addFirst:(Ljava/lang/Object;)V
      92: goto          51
      95: getstatic     #234                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      98: areturn

  private static final java.lang.String main$part2(kotlin.text.Regex, java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: aload_1
       2: invokedynamic #267,  0            // InvokeDynamic #1:invoke:()Lkotlin/jvm/functions/Function4;
       7: invokestatic  #256                // Method main$partX:(Lkotlin/text/Regex;Ljava/util/List;Lkotlin/jvm/functions/Function4;)Ljava/lang/String;
      10: areturn

  public static final java.lang.String access$main$part1(kotlin.text.Regex, java.util.List);
    Code:
       0: aload_0
       1: aload_1
       2: invokestatic  #270                // Method main$part1:(Lkotlin/text/Regex;Ljava/util/List;)Ljava/lang/String;
       5: areturn

  public static final java.lang.String access$main$part2(kotlin.text.Regex, java.util.List);
    Code:
       0: aload_0
       1: aload_1
       2: invokestatic  #273                // Method main$part2:(Lkotlin/text/Regex;Ljava/util/List;)Ljava/lang/String;
       5: areturn
}

Compiled from "Day05.kt"
final class Day05Kt$main$2 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.lang.String> {
  final kotlin.text.Regex $inputLineRegex;

  Day05Kt$main$2(kotlin.text.Regex);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #13                 // Field $inputLineRegex:Lkotlin/text/Regex;
       5: aload_0
       6: iconst_1
       7: ldc           #15                 // class kotlin/jvm/internal/Intrinsics$Kotlin
       9: ldc           #17                 // String part2
      11: ldc           #19                 // String main$part2(Lkotlin/text/Regex;Ljava/util/List;)Ljava/lang/String;
      13: iconst_0
      14: invokespecial #22                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      17: return

  public final java.lang.String invoke(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #29                 // String p0
       3: invokestatic  #35                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: getfield      #13                 // Field $inputLineRegex:Lkotlin/text/Regex;
      10: aload_1
      11: invokestatic  #41                 // Method Day05Kt.access$main$part2:(Lkotlin/text/Regex;Ljava/util/List;)Ljava/lang/String;
      14: areturn

  public java.lang.Object invoke(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #45                 // class java/util/List
       5: invokevirtual #47                 // Method invoke:(Ljava/util/List;)Ljava/lang/String;
       8: areturn
}

Compiled from "Day05.kt"
final class Day05Kt$main$1 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.lang.String> {
  final kotlin.text.Regex $inputLineRegex;

  Day05Kt$main$1(kotlin.text.Regex);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #13                 // Field $inputLineRegex:Lkotlin/text/Regex;
       5: aload_0
       6: iconst_1
       7: ldc           #15                 // class kotlin/jvm/internal/Intrinsics$Kotlin
       9: ldc           #17                 // String part1
      11: ldc           #19                 // String main$part1(Lkotlin/text/Regex;Ljava/util/List;)Ljava/lang/String;
      13: iconst_0
      14: invokespecial #22                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      17: return

  public final java.lang.String invoke(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #29                 // String p0
       3: invokestatic  #35                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: getfield      #13                 // Field $inputLineRegex:Lkotlin/text/Regex;
      10: aload_1
      11: invokestatic  #41                 // Method Day05Kt.access$main$part1:(Lkotlin/text/Regex;Ljava/util/List;)Ljava/lang/String;
      14: areturn

  public java.lang.Object invoke(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #45                 // class java/util/List
       5: invokevirtual #47                 // Method invoke:(Ljava/util/List;)Ljava/lang/String;
       8: areturn
}


import kotlin.math.max
import kotlin.math.min

fun main() {
    fun parseData(input: List<String>): List<Triple<Vector2d, Vector2d, Int>> = input.map { line ->
        line.ints().let {
            val sensor = Vector2d(it[0], it[1])
            val beacon = Vector2d(it[2], it[3])
            val range = (sensor - beacon).manhattan()

            Triple(sensor, beacon, range)
        }
    }

    fun part1(input: List<String>): Long {
        val coverage = mutableSetOf<Vector2d>()
        val data = parseData(input)
        val xMin = data.minOf { (sensor, _, range) -> sensor.x - range }
        val xMax = data.maxOf { (sensor, _, range) -> sensor.x + range }
        val targetY = if (input.size < 15) 10 else 2000000

        for (x in xMin..xMax) {
            for ((sensor, _, range) in data) {
                val candidate = Vector2d(x, targetY)

                if ((sensor - candidate).manhattan() <= range)
                    coverage += candidate
            }
        }

        coverage -= data.map { (_, beacon, _) -> beacon }.toSet()
        coverage -= data.map { (sensor, _, _) -> sensor }.toSet()

        return coverage.size.toLong()
    }

    fun part2(input: List<String>): Long {
        val data = parseData(input)
        val bounds = mutableSetOf<Vector2d>()
        val maxBound = 4000000

        for ((sensor, _, range) in data) {
            val boundRange = range + 1
            var dx = 0

            for (y in max(sensor.y - boundRange, 0)..min(sensor.y, maxBound)) {
                if (sensor.x + dx <= maxBound)
                    bounds += Vector2d(sensor.x + dx, y)

                if (sensor.x - dx >= 0)
                    bounds += Vector2d(sensor.x - dx, y)

                dx++
            }

            dx--

            for (y in max(sensor.y + 1, 0)..min(sensor.y + boundRange, maxBound)) {
                if (sensor.x + dx <= maxBound)
                    bounds += Vector2d(sensor.x + dx, y)

                if (sensor.x - dx >= 0)
                    bounds += Vector2d(sensor.x - dx, y)

                dx++
            }
        }

        for (bound in bounds.filter { it.x in (0..maxBound) && it.y in (0..maxBound) }) {
            if (data.count { (sensor, _, range) -> (sensor - bound).manhattan() <= range } == 0) {
                return bound.x * 4000000L + bound.y
            }
        }

        return -1
    }

    test(
        day = 15,
        testTarget1 = 26,
        testTarget2 = 56000011,
        part1 = ::part1,
        part2 = ::part2,
    )
}

Compiled from "Day15.kt"
public final class Day15Kt {
  public static final void main();
    Code:
       0: bipush        15
       2: ldc2_w        #7                  // long 26l
       5: invokestatic  #14                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
       8: ldc2_w        #15                 // long 56000011l
      11: invokestatic  #14                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      14: getstatic     #22                 // Field Day15Kt$main$1.INSTANCE:LDay15Kt$main$1;
      17: checkcast     #24                 // class kotlin/jvm/functions/Function1
      20: getstatic     #29                 // Field Day15Kt$main$2.INSTANCE:LDay15Kt$main$2;
      23: checkcast     #24                 // class kotlin/jvm/functions/Function1
      26: invokestatic  #35                 // Method UtilsKt.test:(ILjava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
      29: return

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #38                 // Method main:()V
       3: return

  private static final java.util.List<kotlin.Triple<Vector2d, Vector2d, java.lang.Integer>> main$parseData(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: checkcast     #45                 // class java/lang/Iterable
       4: astore_1
       5: iconst_0
       6: istore_2
       7: aload_1
       8: astore_3
       9: new           #47                 // class java/util/ArrayList
      12: dup
      13: aload_1
      14: bipush        10
      16: invokestatic  #53                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      19: invokespecial #57                 // Method java/util/ArrayList."<init>":(I)V
      22: checkcast     #59                 // class java/util/Collection
      25: astore        4
      27: iconst_0
      28: istore        5
      30: aload_3
      31: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      36: astore        6
      38: aload         6
      40: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      45: ifeq          197
      48: aload         6
      50: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      55: astore        7
      57: aload         4
      59: aload         7
      61: checkcast     #75                 // class java/lang/String
      64: astore        8
      66: astore        15
      68: iconst_0
      69: istore        9
      71: aload         8
      73: invokestatic  #79                 // Method UtilsKt.ints:(Ljava/lang/String;)Ljava/util/List;
      76: astore        10
      78: iconst_0
      79: istore        11
      81: new           #81                 // class Vector2d
      84: dup
      85: aload         10
      87: iconst_0
      88: invokeinterface #87,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      93: checkcast     #89                 // class java/lang/Number
      96: invokevirtual #93                 // Method java/lang/Number.intValue:()I
      99: aload         10
     101: iconst_1
     102: invokeinterface #87,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     107: checkcast     #89                 // class java/lang/Number
     110: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     113: invokespecial #96                 // Method Vector2d."<init>":(II)V
     116: astore        12
     118: new           #81                 // class Vector2d
     121: dup
     122: aload         10
     124: iconst_2
     125: invokeinterface #87,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     130: checkcast     #89                 // class java/lang/Number
     133: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     136: aload         10
     138: iconst_3
     139: invokeinterface #87,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     144: checkcast     #89                 // class java/lang/Number
     147: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     150: invokespecial #96                 // Method Vector2d."<init>":(II)V
     153: astore        13
     155: aload         12
     157: aload         13
     159: invokevirtual #100                // Method Vector2d.minus:(LVector2d;)LVector2d;
     162: invokevirtual #103                // Method Vector2d.manhattan:()I
     165: istore        14
     167: new           #105                // class kotlin/Triple
     170: dup
     171: aload         12
     173: aload         13
     175: iload         14
     177: invokestatic  #110                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     180: invokespecial #113                // Method kotlin/Triple."<init>":(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
     183: nop
     184: nop
     185: aload         15
     187: swap
     188: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     193: pop
     194: goto          38
     197: aload         4
     199: checkcast     #83                 // class java/util/List
     202: nop
     203: areturn

  private static final long main$part1(java.util.List<java.lang.String>);
    Code:
       0: new           #143                // class java/util/LinkedHashSet
       3: dup
       4: invokespecial #145                // Method java/util/LinkedHashSet."<init>":()V
       7: checkcast     #147                // class java/util/Set
      10: astore_1
      11: aload_0
      12: invokestatic  #149                // Method main$parseData:(Ljava/util/List;)Ljava/util/List;
      15: astore_2
      16: aload_2
      17: checkcast     #45                 // class java/lang/Iterable
      20: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      25: astore        5
      27: aload         5
      29: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      34: ifne          45
      37: new           #151                // class java/util/NoSuchElementException
      40: dup
      41: invokespecial #152                // Method java/util/NoSuchElementException."<init>":()V
      44: athrow
      45: aload         5
      47: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      52: checkcast     #105                // class kotlin/Triple
      55: astore        6
      57: iconst_0
      58: istore        7
      60: aload         6
      62: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
      65: checkcast     #81                 // class Vector2d
      68: astore        8
      70: aload         6
      72: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
      75: checkcast     #89                 // class java/lang/Number
      78: invokevirtual #93                 // Method java/lang/Number.intValue:()I
      81: istore        9
      83: aload         8
      85: invokevirtual #161                // Method Vector2d.getX:()I
      88: iload         9
      90: isub
      91: istore        6
      93: aload         5
      95: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     100: ifeq          165
     103: aload         5
     105: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     110: checkcast     #105                // class kotlin/Triple
     113: astore        7
     115: iconst_0
     116: istore        8
     118: aload         7
     120: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     123: checkcast     #81                 // class Vector2d
     126: astore        9
     128: aload         7
     130: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     133: checkcast     #89                 // class java/lang/Number
     136: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     139: istore        10
     141: aload         9
     143: invokevirtual #161                // Method Vector2d.getX:()I
     146: iload         10
     148: isub
     149: istore        7
     151: iload         6
     153: iload         7
     155: if_icmple     93
     158: iload         7
     160: istore        6
     162: goto          93
     165: iload         6
     167: istore_3
     168: aload_2
     169: checkcast     #45                 // class java/lang/Iterable
     172: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     177: astore        6
     179: aload         6
     181: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     186: ifne          197
     189: new           #151                // class java/util/NoSuchElementException
     192: dup
     193: invokespecial #152                // Method java/util/NoSuchElementException."<init>":()V
     196: athrow
     197: aload         6
     199: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     204: checkcast     #105                // class kotlin/Triple
     207: astore        7
     209: iconst_0
     210: istore        8
     212: aload         7
     214: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     217: checkcast     #81                 // class Vector2d
     220: astore        9
     222: aload         7
     224: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     227: checkcast     #89                 // class java/lang/Number
     230: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     233: istore        10
     235: aload         9
     237: invokevirtual #161                // Method Vector2d.getX:()I
     240: iload         10
     242: iadd
     243: istore        7
     245: aload         6
     247: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     252: ifeq          317
     255: aload         6
     257: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     262: checkcast     #105                // class kotlin/Triple
     265: astore        8
     267: iconst_0
     268: istore        9
     270: aload         8
     272: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     275: checkcast     #81                 // class Vector2d
     278: astore        10
     280: aload         8
     282: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     285: checkcast     #89                 // class java/lang/Number
     288: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     291: istore        11
     293: aload         10
     295: invokevirtual #161                // Method Vector2d.getX:()I
     298: iload         11
     300: iadd
     301: istore        8
     303: iload         7
     305: iload         8
     307: if_icmpge     245
     310: iload         8
     312: istore        7
     314: goto          245
     317: iload         7
     319: istore        4
     321: aload_0
     322: invokeinterface #164,  1          // InterfaceMethod java/util/List.size:()I
     327: bipush        15
     329: if_icmpge     337
     332: bipush        10
     334: goto          339
     337: ldc           #165                // int 2000000
     339: istore        5
     341: iload_3
     342: istore        6
     344: iload         6
     346: iload         4
     348: if_icmpgt     460
     351: aload_2
     352: invokeinterface #166,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     357: astore        7
     359: aload         7
     361: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     366: ifeq          447
     369: aload         7
     371: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     376: checkcast     #105                // class kotlin/Triple
     379: astore        8
     381: aload         8
     383: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     386: checkcast     #81                 // class Vector2d
     389: astore        9
     391: aload         8
     393: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     396: checkcast     #89                 // class java/lang/Number
     399: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     402: istore        10
     404: new           #81                 // class Vector2d
     407: dup
     408: iload         6
     410: iload         5
     412: invokespecial #96                 // Method Vector2d."<init>":(II)V
     415: astore        11
     417: aload         9
     419: aload         11
     421: invokevirtual #100                // Method Vector2d.minus:(LVector2d;)LVector2d;
     424: invokevirtual #103                // Method Vector2d.manhattan:()I
     427: iload         10
     429: if_icmpgt     359
     432: aload_1
     433: checkcast     #59                 // class java/util/Collection
     436: aload         11
     438: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     443: pop
     444: goto          359
     447: iload         6
     449: iload         4
     451: if_icmpeq     460
     454: iinc          6, 1
     457: goto          351
     460: aload_1
     461: checkcast     #59                 // class java/util/Collection
     464: astore        6
     466: aload_2
     467: checkcast     #45                 // class java/lang/Iterable
     470: astore        7
     472: iconst_0
     473: istore        8
     475: aload         7
     477: astore        9
     479: new           #47                 // class java/util/ArrayList
     482: dup
     483: aload         7
     485: bipush        10
     487: invokestatic  #53                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     490: invokespecial #57                 // Method java/util/ArrayList."<init>":(I)V
     493: checkcast     #59                 // class java/util/Collection
     496: astore        10
     498: iconst_0
     499: istore        11
     501: aload         9
     503: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     508: astore        12
     510: aload         12
     512: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     517: ifeq          567
     520: aload         12
     522: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     527: astore        13
     529: aload         10
     531: aload         13
     533: checkcast     #105                // class kotlin/Triple
     536: astore        14
     538: astore        17
     540: iconst_0
     541: istore        15
     543: aload         14
     545: invokevirtual #169                // Method kotlin/Triple.component2:()Ljava/lang/Object;
     548: checkcast     #81                 // class Vector2d
     551: astore        16
     553: aload         16
     555: aload         17
     557: swap
     558: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     563: pop
     564: goto          510
     567: aload         10
     569: checkcast     #83                 // class java/util/List
     572: nop
     573: checkcast     #45                 // class java/lang/Iterable
     576: invokestatic  #173                // Method kotlin/collections/CollectionsKt.toSet:(Ljava/lang/Iterable;)Ljava/util/Set;
     579: checkcast     #45                 // class java/lang/Iterable
     582: aload         6
     584: swap
     585: invokestatic  #177                // Method kotlin/collections/CollectionsKt.removeAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
     588: pop
     589: aload_1
     590: checkcast     #59                 // class java/util/Collection
     593: astore        6
     595: aload_2
     596: checkcast     #45                 // class java/lang/Iterable
     599: astore        7
     601: iconst_0
     602: istore        8
     604: aload         7
     606: astore        9
     608: new           #47                 // class java/util/ArrayList
     611: dup
     612: aload         7
     614: bipush        10
     616: invokestatic  #53                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     619: invokespecial #57                 // Method java/util/ArrayList."<init>":(I)V
     622: checkcast     #59                 // class java/util/Collection
     625: astore        10
     627: iconst_0
     628: istore        11
     630: aload         9
     632: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     637: astore        12
     639: aload         12
     641: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     646: ifeq          696
     649: aload         12
     651: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     656: astore        13
     658: aload         10
     660: aload         13
     662: checkcast     #105                // class kotlin/Triple
     665: astore        14
     667: astore        17
     669: iconst_0
     670: istore        15
     672: aload         14
     674: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     677: checkcast     #81                 // class Vector2d
     680: astore        16
     682: aload         16
     684: aload         17
     686: swap
     687: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     692: pop
     693: goto          639
     696: aload         10
     698: checkcast     #83                 // class java/util/List
     701: nop
     702: checkcast     #45                 // class java/lang/Iterable
     705: invokestatic  #173                // Method kotlin/collections/CollectionsKt.toSet:(Ljava/lang/Iterable;)Ljava/util/Set;
     708: checkcast     #45                 // class java/lang/Iterable
     711: aload         6
     713: swap
     714: invokestatic  #177                // Method kotlin/collections/CollectionsKt.removeAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
     717: pop
     718: aload_1
     719: invokeinterface #178,  1          // InterfaceMethod java/util/Set.size:()I
     724: i2l
     725: lreturn

  private static final long main$part2(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: invokestatic  #149                // Method main$parseData:(Ljava/util/List;)Ljava/util/List;
       4: astore_1
       5: new           #143                // class java/util/LinkedHashSet
       8: dup
       9: invokespecial #145                // Method java/util/LinkedHashSet."<init>":()V
      12: checkcast     #147                // class java/util/Set
      15: astore_2
      16: ldc           #192                // int 4000000
      18: istore_3
      19: aload_1
      20: invokeinterface #166,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      25: astore        4
      27: aload         4
      29: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      34: ifeq          336
      37: aload         4
      39: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      44: checkcast     #105                // class kotlin/Triple
      47: astore        5
      49: aload         5
      51: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
      54: checkcast     #81                 // class Vector2d
      57: astore        6
      59: aload         5
      61: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
      64: checkcast     #89                 // class java/lang/Number
      67: invokevirtual #93                 // Method java/lang/Number.intValue:()I
      70: istore        7
      72: iload         7
      74: iconst_1
      75: iadd
      76: istore        8
      78: iconst_0
      79: istore        9
      81: aload         6
      83: invokevirtual #195                // Method Vector2d.getY:()I
      86: iload         8
      88: isub
      89: iconst_0
      90: invokestatic  #201                // Method java/lang/Math.max:(II)I
      93: istore        10
      95: aload         6
      97: invokevirtual #195                // Method Vector2d.getY:()I
     100: iload_3
     101: invokestatic  #204                // Method java/lang/Math.min:(II)I
     104: istore        11
     106: iload         10
     108: iload         11
     110: if_icmpgt     206
     113: aload         6
     115: invokevirtual #161                // Method Vector2d.getX:()I
     118: iload         9
     120: iadd
     121: iload_3
     122: if_icmpgt     152
     125: aload_2
     126: checkcast     #59                 // class java/util/Collection
     129: new           #81                 // class Vector2d
     132: dup
     133: aload         6
     135: invokevirtual #161                // Method Vector2d.getX:()I
     138: iload         9
     140: iadd
     141: iload         10
     143: invokespecial #96                 // Method Vector2d."<init>":(II)V
     146: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     151: pop
     152: aload         6
     154: invokevirtual #161                // Method Vector2d.getX:()I
     157: iload         9
     159: isub
     160: iflt          190
     163: aload_2
     164: checkcast     #59                 // class java/util/Collection
     167: new           #81                 // class Vector2d
     170: dup
     171: aload         6
     173: invokevirtual #161                // Method Vector2d.getX:()I
     176: iload         9
     178: isub
     179: iload         10
     181: invokespecial #96                 // Method Vector2d."<init>":(II)V
     184: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     189: pop
     190: iinc          9, 1
     193: iload         10
     195: iload         11
     197: if_icmpeq     206
     200: iinc          10, 1
     203: goto          113
     206: iinc          9, -1
     209: aload         6
     211: invokevirtual #195                // Method Vector2d.getY:()I
     214: iconst_1
     215: iadd
     216: iconst_0
     217: invokestatic  #201                // Method java/lang/Math.max:(II)I
     220: istore        10
     222: aload         6
     224: invokevirtual #195                // Method Vector2d.getY:()I
     227: iload         8
     229: iadd
     230: iload_3
     231: invokestatic  #204                // Method java/lang/Math.min:(II)I
     234: istore        11
     236: iload         10
     238: iload         11
     240: if_icmpgt     27
     243: aload         6
     245: invokevirtual #161                // Method Vector2d.getX:()I
     248: iload         9
     250: iadd
     251: iload_3
     252: if_icmpgt     282
     255: aload_2
     256: checkcast     #59                 // class java/util/Collection
     259: new           #81                 // class Vector2d
     262: dup
     263: aload         6
     265: invokevirtual #161                // Method Vector2d.getX:()I
     268: iload         9
     270: iadd
     271: iload         10
     273: invokespecial #96                 // Method Vector2d."<init>":(II)V
     276: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     281: pop
     282: aload         6
     284: invokevirtual #161                // Method Vector2d.getX:()I
     287: iload         9
     289: isub
     290: iflt          320
     293: aload_2
     294: checkcast     #59                 // class java/util/Collection
     297: new           #81                 // class Vector2d
     300: dup
     301: aload         6
     303: invokevirtual #161                // Method Vector2d.getX:()I
     306: iload         9
     308: isub
     309: iload         10
     311: invokespecial #96                 // Method Vector2d."<init>":(II)V
     314: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     319: pop
     320: iinc          9, 1
     323: iload         10
     325: iload         11
     327: if_icmpeq     27
     330: iinc          10, 1
     333: goto          243
     336: aload_2
     337: checkcast     #45                 // class java/lang/Iterable
     340: astore        5
     342: iconst_0
     343: istore        6
     345: aload         5
     347: astore        7
     349: new           #47                 // class java/util/ArrayList
     352: dup
     353: invokespecial #205                // Method java/util/ArrayList."<init>":()V
     356: checkcast     #59                 // class java/util/Collection
     359: astore        8
     361: iconst_0
     362: istore        9
     364: aload         7
     366: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     371: astore        10
     373: aload         10
     375: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     380: ifeq          485
     383: aload         10
     385: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     390: astore        11
     392: aload         11
     394: checkcast     #81                 // class Vector2d
     397: astore        12
     399: iconst_0
     400: istore        13
     402: aload         12
     404: invokevirtual #161                // Method Vector2d.getX:()I
     407: istore        14
     409: iconst_0
     410: iload         14
     412: if_icmpgt     429
     415: iload         14
     417: iload_3
     418: if_icmpgt     425
     421: iconst_1
     422: goto          430
     425: iconst_0
     426: goto          430
     429: iconst_0
     430: ifeq          468
     433: aload         12
     435: invokevirtual #195                // Method Vector2d.getY:()I
     438: istore        14
     440: iconst_0
     441: iload         14
     443: if_icmpgt     460
     446: iload         14
     448: iload_3
     449: if_icmpgt     456
     452: iconst_1
     453: goto          461
     456: iconst_0
     457: goto          461
     460: iconst_0
     461: ifeq          468
     464: iconst_1
     465: goto          469
     468: iconst_0
     469: ifeq          373
     472: aload         8
     474: aload         11
     476: invokeinterface #117,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     481: pop
     482: goto          373
     485: aload         8
     487: checkcast     #83                 // class java/util/List
     490: nop
     491: invokeinterface #166,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     496: astore        4
     498: aload         4
     500: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     505: ifeq          678
     508: aload         4
     510: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     515: checkcast     #81                 // class Vector2d
     518: astore        5
     520: aload_1
     521: checkcast     #45                 // class java/lang/Iterable
     524: astore        6
     526: iconst_0
     527: istore        7
     529: aload         6
     531: instanceof    #59                 // class java/util/Collection
     534: ifeq          554
     537: aload         6
     539: checkcast     #59                 // class java/util/Collection
     542: invokeinterface #208,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     547: ifeq          554
     550: iconst_0
     551: goto          657
     554: iconst_0
     555: istore        8
     557: aload         6
     559: invokeinterface #63,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     564: astore        9
     566: aload         9
     568: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     573: ifeq          655
     576: aload         9
     578: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     583: astore        10
     585: aload         10
     587: checkcast     #105                // class kotlin/Triple
     590: astore        11
     592: iconst_0
     593: istore        12
     595: aload         11
     597: invokevirtual #155                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     600: checkcast     #81                 // class Vector2d
     603: astore        13
     605: aload         11
     607: invokevirtual #158                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     610: checkcast     #89                 // class java/lang/Number
     613: invokevirtual #93                 // Method java/lang/Number.intValue:()I
     616: istore        14
     618: aload         13
     620: aload         5
     622: invokevirtual #100                // Method Vector2d.minus:(LVector2d;)LVector2d;
     625: invokevirtual #103                // Method Vector2d.manhattan:()I
     628: iload         14
     630: if_icmpgt     637
     633: iconst_1
     634: goto          638
     637: iconst_0
     638: ifeq          566
     641: iinc          8, 1
     644: iload         8
     646: ifge          566
     649: invokestatic  #211                // Method kotlin/collections/CollectionsKt.throwCountOverflow:()V
     652: goto          566
     655: iload         8
     657: ifne          498
     660: aload         5
     662: invokevirtual #161                // Method Vector2d.getX:()I
     665: i2l
     666: ldc2_w        #212                // long 4000000l
     669: lmul
     670: aload         5
     672: invokevirtual #195                // Method Vector2d.getY:()I
     675: i2l
     676: ladd
     677: lreturn
     678: ldc2_w        #214                // long -1l
     681: lreturn

  public static final long access$main$part1(java.util.List);
    Code:
       0: aload_0
       1: invokestatic  #235                // Method main$part1:(Ljava/util/List;)J
       4: lreturn

  public static final long access$main$part2(java.util.List);
    Code:
       0: aload_0
       1: invokestatic  #238                // Method main$part2:(Ljava/util/List;)J
       4: lreturn
}

Compiled from "Day15.kt"
final class Day15Kt$main$1 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.lang.Long> {
  public static final Day15Kt$main$1 INSTANCE;

  Day15Kt$main$1();
    Code:
       0: aload_0
       1: iconst_1
       2: ldc           #11                 // class kotlin/jvm/internal/Intrinsics$Kotlin
       4: ldc           #13                 // String part1
       6: ldc           #15                 // String main$part1(Ljava/util/List;)J
       8: iconst_0
       9: invokespecial #18                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      12: return

  public final java.lang.Long invoke(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #25                 // String p0
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: invokestatic  #37                 // Method Day15Kt.access$main$part1:(Ljava/util/List;)J
      10: invokestatic  #43                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      13: areturn

  public java.lang.Object invoke(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #47                 // class java/util/List
       5: invokevirtual #49                 // Method invoke:(Ljava/util/List;)Ljava/lang/Long;
       8: areturn

  static {};
    Code:
       0: new           #2                  // class Day15Kt$main$1
       3: dup
       4: invokespecial #54                 // Method "<init>":()V
       7: putstatic     #57                 // Field INSTANCE:LDay15Kt$main$1;
      10: return
}

Compiled from "Day15.kt"
final class Day15Kt$main$2 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.lang.Long> {
  public static final Day15Kt$main$2 INSTANCE;

  Day15Kt$main$2();
    Code:
       0: aload_0
       1: iconst_1
       2: ldc           #11                 // class kotlin/jvm/internal/Intrinsics$Kotlin
       4: ldc           #13                 // String part2
       6: ldc           #15                 // String main$part2(Ljava/util/List;)J
       8: iconst_0
       9: invokespecial #18                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      12: return

  public final java.lang.Long invoke(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #25                 // String p0
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: invokestatic  #37                 // Method Day15Kt.access$main$part2:(Ljava/util/List;)J
      10: invokestatic  #43                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      13: areturn

  public java.lang.Object invoke(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #47                 // class java/util/List
       5: invokevirtual #49                 // Method invoke:(Ljava/util/List;)Ljava/lang/Long;
       8: areturn

  static {};
    Code:
       0: new           #2                  // class Day15Kt$main$2
       3: dup
       4: invokespecial #54                 // Method "<init>":()V
       7: putstatic     #57                 // Field INSTANCE:LDay15Kt$main$2;
      10: return
}