import javax.swing.JOptionPane

fun main() {
    val input = readInput("Day18")
    printTime { print(Day18.part1(input)) }
    printTime { print(Day18.part1Bitwise(input)) }

    printTime { print(Day18.part2(input)) }
}

class Day18 {

    companion object {
        fun part1(input: List<String>): Int {
            val cubes = input.map { it.split(",").map { it.toInt() } }.map { (x, y, z) -> Position(x, y, z) }
            return cubes.getNumberOfSidesArrayImpl()
        }

        fun part1Bitwise(input: List<String>): Int {
            val cubes = input.map { it.split(",").map { it.toInt() } }.map { (x, y, z) -> Position(x, y, z) }
            return cubes.getNumberOfSides()
        }

        fun part2(input: List<String>): Int {
            val cubes = input.map { it.split(",").map { it.toInt() } }.map { (x, y, z) -> Position(x, y, z) }
            return cubes.withoutBubbles().getNumberOfSides()
        }
    }
}

private fun List<Position>.withoutBubbles(): List<Position> {
    val maxX = maxOf { it.x }
    val maxY = maxOf { it.y }
    val maxZ = maxOf { it.z }

    val occupiedArea = Array(maxX + 1) { Array(maxY + 1) { Array(maxZ + 1) { false } } }

    for ((x, y, z) in this) {
        occupiedArea[x][y][z] = true
    }
//    showSlice(occupiedArea)

    val floodedArea = Array(maxX + 1) { Array(maxY + 1) { Array(maxZ + 1) { false } } }

    val queue = ArrayDeque<Position>()
    queue.add(Position(0, 0, 0))

    while (queue.isNotEmpty()) {
        val (x, y, z) = queue.removeFirst()
        if (!floodedArea[x][y][z] && !occupiedArea[x][y][z]) {
            floodedArea[x][y][z] = true

            if (x > 0) {
                queue.add(Position(x - 1, y, z))
            }
            if (x < maxX) {
                queue.add(Position(x + 1, y, z))
            }
            if (y > 0) {
                queue.add(Position(x, y - 1, z))
            }
            if (y < maxY) {
                queue.add(Position(x, y + 1, z))
            }
            if (z > 0) {
                queue.add(Position(x, y, z - 1))
            }
            if (z < maxZ) {
                queue.add(Position(x, y, z + 1))
            }
        }
    }
//    showSlice(floodedArea)

    return floodedArea.mapIndexed { x, table ->
        table.mapIndexed { y, row ->
            row.mapIndexed { z, flooded ->
                if (flooded) null else Position(
                    x,
                    y,
                    z
                )
            }
        }
    }.flatten().flatten().filterNotNull()
}

data class Position(val x: Int, val y: Int, val z: Int)

fun List<Position>.getNumberOfSides(): Int {
    val maxX = maxOf { it.x }
    val maxY = maxOf { it.y }
    val maxZ = maxOf { it.z }

    val sideX = (0..maxY).map { (0..maxZ).map { 0 }.toMutableList() }
    val sideY = (0..maxZ).map { (0..maxX).map { 0 }.toMutableList() }
    val sideZ = (0..maxX).map { (0..maxY).map { 0 }.toMutableList() }

    for (cube in this) {
        sideX[cube.y][cube.z] = sideX[cube.y][cube.z] xor (1 shl cube.x)
        sideX[cube.y][cube.z] = sideX[cube.y][cube.z] xor (1 shl cube.x + 1)

        sideY[cube.z][cube.x] = sideY[cube.z][cube.x] xor (1 shl cube.y)
        sideY[cube.z][cube.x] = sideY[cube.z][cube.x] xor (1 shl cube.y + 1)

        sideZ[cube.x][cube.y] = sideZ[cube.x][cube.y] xor (1 shl cube.z)
        sideZ[cube.x][cube.y] = sideZ[cube.x][cube.y] xor (1 shl cube.z + 1)
    }

    val numOfSidesX = sideX.sumOf { it.sumOf { Integer.bitCount(it) } }
    val numOfSidesY = sideY.sumOf { it.sumOf { Integer.bitCount(it) } }
    val numOfSidesZ = sideZ.sumOf { it.sumOf { Integer.bitCount(it) } }
    return numOfSidesX + numOfSidesY + numOfSidesZ
}

fun List<Position>.getNumberOfSidesArrayImpl(): Int {
    val maxX = maxOf { it.x }
    val maxY = maxOf { it.y }
    val maxZ = maxOf { it.z }

    val sideX = (0..maxY).map { (0..maxZ).map { (0..maxX + 1).map { false }.toMutableList() } }
    val sideY = (0..maxZ).map { (0..maxX).map { (0..maxY + 1).map { false }.toMutableList() } }
    val sideZ = (0..maxX).map { (0..maxY).map { (0..maxZ + 1).map { false }.toMutableList() } }

    for (cube in this) {
        sideX[cube.y][cube.z][cube.x] = !sideX[cube.y][cube.z][cube.x]
        sideX[cube.y][cube.z][cube.x + 1] = !sideX[cube.y][cube.z][cube.x + 1]

        sideY[cube.z][cube.x][cube.y] = !sideY[cube.z][cube.x][cube.y]
        sideY[cube.z][cube.x][cube.y + 1] = !sideY[cube.z][cube.x][cube.y + 1]

        sideZ[cube.x][cube.y][cube.z] = !sideZ[cube.x][cube.y][cube.z]
        sideZ[cube.x][cube.y][cube.z + 1] = !sideZ[cube.x][cube.y][cube.z + 1]
    }

    val numOfSidesX = sideX.sumOf { it.sumOf { it.filter { it }.count() } }
    val numOfSidesY = sideY.sumOf { it.sumOf { it.filter { it }.count() } }
    val numOfSidesZ = sideZ.sumOf { it.sumOf { it.filter { it }.count() } }

    return numOfSidesX + numOfSidesY + numOfSidesZ
}

fun showSlice(area: Array<Array<Array<Boolean>>>) {
    var x = 0
    var result: Int = -1
    while (true) {
        val slice = area[x].map { it.map { if (it) "_" else "#" }.joinToString("") }.joinToString("\n")
        result = JOptionPane.showConfirmDialog(null, "$x \n\n$slice\n\n Next Slice?")
        when (result) {
            JOptionPane.YES_OPTION -> if (x > 0) x--
            JOptionPane.NO_OPTION -> if (x < area.lastIndex) x++
            JOptionPane.CANCEL_OPTION -> break
        }

    }
}

Compiled from "Day18.kt"
public final class Day18 {
  public static final Day18$Companion Companion;

  public Day18();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  static {};
    Code:
       0: new           #13                 // class Day18$Companion
       3: dup
       4: aconst_null
       5: invokespecial #16                 // Method Day18$Companion."<init>":(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
       8: putstatic     #20                 // Field Companion:LDay18$Companion;
      11: return
}

Compiled from "Day18.kt"
public final class Day18Kt {
  public static final void main();
    Code:
       0: ldc           #8                  // String Day18
       2: invokestatic  #14                 // Method UtilsKt.readInput:(Ljava/lang/String;)Ljava/util/List;
       5: astore_0
       6: aconst_null
       7: aconst_null
       8: aload_0
       9: invokedynamic #34,  0             // InvokeDynamic #0:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function0;
      14: iconst_3
      15: aconst_null
      16: invokestatic  #38                 // Method UtilsKt.printTime$default:(Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
      19: aconst_null
      20: aconst_null
      21: aload_0
      22: invokedynamic #43,  0             // InvokeDynamic #1:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function0;
      27: iconst_3
      28: aconst_null
      29: invokestatic  #38                 // Method UtilsKt.printTime$default:(Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
      32: aconst_null
      33: aconst_null
      34: aload_0
      35: invokedynamic #48,  0             // InvokeDynamic #2:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function0;
      40: iconst_3
      41: aconst_null
      42: invokestatic  #38                 // Method UtilsKt.printTime$default:(Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
      45: return

  private static final java.util.List<Position> withoutBubbles(java.util.List<Position>);
    Code:
       0: aload_0
       1: checkcast     #55                 // class java/lang/Iterable
       4: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
       9: astore_3
      10: aload_3
      11: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      16: ifne          27
      19: new           #67                 // class java/util/NoSuchElementException
      22: dup
      23: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
      26: athrow
      27: aload_3
      28: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      33: checkcast     #75                 // class Position
      36: astore        4
      38: iconst_0
      39: istore        5
      41: aload         4
      43: invokevirtual #79                 // Method Position.getX:()I
      46: istore        4
      48: aload_3
      49: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      54: ifeq          92
      57: aload_3
      58: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      63: checkcast     #75                 // class Position
      66: astore        5
      68: iconst_0
      69: istore        6
      71: aload         5
      73: invokevirtual #79                 // Method Position.getX:()I
      76: istore        5
      78: iload         4
      80: iload         5
      82: if_icmpge     48
      85: iload         5
      87: istore        4
      89: goto          48
      92: iload         4
      94: istore_1
      95: aload_0
      96: checkcast     #55                 // class java/lang/Iterable
      99: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     104: astore        4
     106: aload         4
     108: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     113: ifne          124
     116: new           #67                 // class java/util/NoSuchElementException
     119: dup
     120: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
     123: athrow
     124: aload         4
     126: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     131: checkcast     #75                 // class Position
     134: astore        5
     136: iconst_0
     137: istore        6
     139: aload         5
     141: invokevirtual #82                 // Method Position.getY:()I
     144: istore        5
     146: aload         4
     148: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     153: ifeq          192
     156: aload         4
     158: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     163: checkcast     #75                 // class Position
     166: astore        6
     168: iconst_0
     169: istore        7
     171: aload         6
     173: invokevirtual #82                 // Method Position.getY:()I
     176: istore        6
     178: iload         5
     180: iload         6
     182: if_icmpge     146
     185: iload         6
     187: istore        5
     189: goto          146
     192: iload         5
     194: istore_2
     195: aload_0
     196: checkcast     #55                 // class java/lang/Iterable
     199: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     204: astore        5
     206: aload         5
     208: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     213: ifne          224
     216: new           #67                 // class java/util/NoSuchElementException
     219: dup
     220: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
     223: athrow
     224: aload         5
     226: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     231: checkcast     #75                 // class Position
     234: astore        6
     236: iconst_0
     237: istore        7
     239: aload         6
     241: invokevirtual #85                 // Method Position.getZ:()I
     244: istore        6
     246: aload         5
     248: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     253: ifeq          292
     256: aload         5
     258: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     263: checkcast     #75                 // class Position
     266: astore        7
     268: iconst_0
     269: istore        8
     271: aload         7
     273: invokevirtual #85                 // Method Position.getZ:()I
     276: istore        7
     278: iload         6
     280: iload         7
     282: if_icmpge     246
     285: iload         7
     287: istore        6
     289: goto          246
     292: iload         6
     294: istore_3
     295: iconst_0
     296: istore        5
     298: iload_1
     299: iconst_1
     300: iadd
     301: istore        6
     303: iload         6
     305: anewarray     #87                 // class "[[Ljava/lang/Boolean;"
     308: astore        7
     310: iload         5
     312: iload         6
     314: if_icmpge     430
     317: iload         5
     319: istore        8
     321: aload         7
     323: iload         8
     325: iconst_0
     326: istore        9
     328: iload_2
     329: iconst_1
     330: iadd
     331: istore        10
     333: iload         10
     335: anewarray     #89                 // class "[Ljava/lang/Boolean;"
     338: astore        11
     340: istore        46
     342: astore        45
     344: iload         9
     346: iload         10
     348: if_icmpge     417
     351: iload         9
     353: istore        12
     355: aload         11
     357: iload         12
     359: iconst_0
     360: istore        13
     362: iload_3
     363: iconst_1
     364: iadd
     365: istore        14
     367: iload         14
     369: anewarray     #91                 // class java/lang/Boolean
     372: astore        15
     374: istore        48
     376: astore        47
     378: iload         13
     380: iload         14
     382: if_icmpge     404
     385: iload         13
     387: istore        16
     389: aload         15
     391: iload         16
     393: iconst_0
     394: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     397: aastore
     398: iinc          13, 1
     401: goto          378
     404: aload         47
     406: iload         48
     408: aload         15
     410: aastore
     411: iinc          9, 1
     414: goto          344
     417: aload         45
     419: iload         46
     421: aload         11
     423: aastore
     424: iinc          5, 1
     427: goto          310
     430: aload         7
     432: astore        4
     434: aload_0
     435: invokeinterface #98,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     440: astore        5
     442: aload         5
     444: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     449: ifeq          503
     452: aload         5
     454: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     459: checkcast     #75                 // class Position
     462: astore        6
     464: aload         6
     466: invokevirtual #101                // Method Position.component1:()I
     469: istore        7
     471: aload         6
     473: invokevirtual #104                // Method Position.component2:()I
     476: istore        8
     478: aload         6
     480: invokevirtual #107                // Method Position.component3:()I
     483: istore        9
     485: aload         4
     487: iload         7
     489: aaload
     490: iload         8
     492: aaload
     493: iload         9
     495: iconst_1
     496: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     499: aastore
     500: goto          442
     503: iconst_0
     504: istore        6
     506: iload_1
     507: iconst_1
     508: iadd
     509: istore        7
     511: iload         7
     513: anewarray     #87                 // class "[[Ljava/lang/Boolean;"
     516: astore        8
     518: iload         6
     520: iload         7
     522: if_icmpge     638
     525: iload         6
     527: istore        9
     529: aload         8
     531: iload         9
     533: iconst_0
     534: istore        10
     536: iload_2
     537: iconst_1
     538: iadd
     539: istore        11
     541: iload         11
     543: anewarray     #89                 // class "[Ljava/lang/Boolean;"
     546: astore        12
     548: istore        46
     550: astore        45
     552: iload         10
     554: iload         11
     556: if_icmpge     625
     559: iload         10
     561: istore        13
     563: aload         12
     565: iload         13
     567: iconst_0
     568: istore        14
     570: iload_3
     571: iconst_1
     572: iadd
     573: istore        15
     575: iload         15
     577: anewarray     #91                 // class java/lang/Boolean
     580: astore        16
     582: istore        48
     584: astore        47
     586: iload         14
     588: iload         15
     590: if_icmpge     612
     593: iload         14
     595: istore        17
     597: aload         16
     599: iload         17
     601: iconst_0
     602: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     605: aastore
     606: iinc          14, 1
     609: goto          586
     612: aload         47
     614: iload         48
     616: aload         16
     618: aastore
     619: iinc          10, 1
     622: goto          552
     625: aload         45
     627: iload         46
     629: aload         12
     631: aastore
     632: iinc          6, 1
     635: goto          518
     638: aload         8
     640: astore        5
     642: new           #109                // class kotlin/collections/ArrayDeque
     645: dup
     646: invokespecial #110                // Method kotlin/collections/ArrayDeque."<init>":()V
     649: astore        6
     651: aload         6
     653: new           #75                 // class Position
     656: dup
     657: iconst_0
     658: iconst_0
     659: iconst_0
     660: invokespecial #113                // Method Position."<init>":(III)V
     663: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     666: pop
     667: aload         6
     669: checkcast     #119                // class java/util/Collection
     672: invokeinterface #122,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     677: ifne          684
     680: iconst_1
     681: goto          685
     684: iconst_0
     685: ifeq          930
     688: aload         6
     690: invokevirtual #125                // Method kotlin/collections/ArrayDeque.removeFirst:()Ljava/lang/Object;
     693: checkcast     #75                 // class Position
     696: astore        7
     698: aload         7
     700: invokevirtual #101                // Method Position.component1:()I
     703: istore        8
     705: aload         7
     707: invokevirtual #104                // Method Position.component2:()I
     710: istore        9
     712: aload         7
     714: invokevirtual #107                // Method Position.component3:()I
     717: istore        10
     719: aload         5
     721: iload         8
     723: aaload
     724: iload         9
     726: aaload
     727: iload         10
     729: aaload
     730: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
     733: ifne          667
     736: aload         4
     738: iload         8
     740: aaload
     741: iload         9
     743: aaload
     744: iload         10
     746: aaload
     747: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
     750: ifne          667
     753: aload         5
     755: iload         8
     757: aaload
     758: iload         9
     760: aaload
     761: iload         10
     763: iconst_1
     764: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     767: aastore
     768: iload         8
     770: ifle          794
     773: aload         6
     775: new           #75                 // class Position
     778: dup
     779: iload         8
     781: iconst_1
     782: isub
     783: iload         9
     785: iload         10
     787: invokespecial #113                // Method Position."<init>":(III)V
     790: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     793: pop
     794: iload         8
     796: iload_1
     797: if_icmpge     821
     800: aload         6
     802: new           #75                 // class Position
     805: dup
     806: iload         8
     808: iconst_1
     809: iadd
     810: iload         9
     812: iload         10
     814: invokespecial #113                // Method Position."<init>":(III)V
     817: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     820: pop
     821: iload         9
     823: ifle          847
     826: aload         6
     828: new           #75                 // class Position
     831: dup
     832: iload         8
     834: iload         9
     836: iconst_1
     837: isub
     838: iload         10
     840: invokespecial #113                // Method Position."<init>":(III)V
     843: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     846: pop
     847: iload         9
     849: iload_2
     850: if_icmpge     874
     853: aload         6
     855: new           #75                 // class Position
     858: dup
     859: iload         8
     861: iload         9
     863: iconst_1
     864: iadd
     865: iload         10
     867: invokespecial #113                // Method Position."<init>":(III)V
     870: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     873: pop
     874: iload         10
     876: ifle          900
     879: aload         6
     881: new           #75                 // class Position
     884: dup
     885: iload         8
     887: iload         9
     889: iload         10
     891: iconst_1
     892: isub
     893: invokespecial #113                // Method Position."<init>":(III)V
     896: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     899: pop
     900: iload         10
     902: iload_3
     903: if_icmpge     667
     906: aload         6
     908: new           #75                 // class Position
     911: dup
     912: iload         8
     914: iload         9
     916: iload         10
     918: iconst_1
     919: iadd
     920: invokespecial #113                // Method Position."<init>":(III)V
     923: invokevirtual #117                // Method kotlin/collections/ArrayDeque.add:(Ljava/lang/Object;)Z
     926: pop
     927: goto          667
     930: aload         5
     932: checkcast     #130                // class "[Ljava/lang/Object;"
     935: astore        7
     937: iconst_0
     938: istore        8
     940: aload         7
     942: astore        9
     944: new           #132                // class java/util/ArrayList
     947: dup
     948: aload         7
     950: arraylength
     951: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     954: checkcast     #119                // class java/util/Collection
     957: astore        10
     959: iconst_0
     960: istore        11
     962: iconst_0
     963: istore        12
     965: iconst_0
     966: istore        13
     968: aload         9
     970: arraylength
     971: istore        14
     973: iload         13
     975: iload         14
     977: if_icmpge     1243
     980: aload         9
     982: iload         13
     984: aaload
     985: astore        15
     987: aload         10
     989: iload         12
     991: iinc          12, 1
     994: aload         15
     996: checkcast     #87                 // class "[[Ljava/lang/Boolean;"
     999: astore        16
    1001: istore        17
    1003: astore        45
    1005: iconst_0
    1006: istore        18
    1008: aload         16
    1010: checkcast     #130                // class "[Ljava/lang/Object;"
    1013: astore        19
    1015: iconst_0
    1016: istore        20
    1018: aload         19
    1020: astore        21
    1022: new           #132                // class java/util/ArrayList
    1025: dup
    1026: aload         19
    1028: arraylength
    1029: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
    1032: checkcast     #119                // class java/util/Collection
    1035: astore        22
    1037: iconst_0
    1038: istore        23
    1040: iconst_0
    1041: istore        24
    1043: iconst_0
    1044: istore        25
    1046: aload         21
    1048: arraylength
    1049: istore        26
    1051: iload         25
    1053: iload         26
    1055: if_icmpge     1221
    1058: aload         21
    1060: iload         25
    1062: aaload
    1063: astore        27
    1065: aload         22
    1067: iload         24
    1069: iinc          24, 1
    1072: aload         27
    1074: checkcast     #89                 // class "[Ljava/lang/Boolean;"
    1077: astore        28
    1079: istore        29
    1081: astore        30
    1083: iconst_0
    1084: istore        31
    1086: aload         28
    1088: astore        32
    1090: iconst_0
    1091: istore        33
    1093: aload         32
    1095: astore        34
    1097: new           #132                // class java/util/ArrayList
    1100: dup
    1101: aload         32
    1103: arraylength
    1104: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
    1107: checkcast     #119                // class java/util/Collection
    1110: astore        35
    1112: iconst_0
    1113: istore        36
    1115: iconst_0
    1116: istore        37
    1118: iconst_0
    1119: istore        38
    1121: aload         34
    1123: arraylength
    1124: istore        39
    1126: iload         38
    1128: iload         39
    1130: if_icmpge     1199
    1133: aload         34
    1135: iload         38
    1137: aaload
    1138: astore        40
    1140: aload         35
    1142: iload         37
    1144: iinc          37, 1
    1147: aload         40
    1149: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1152: istore        41
    1154: istore        42
    1156: astore        43
    1158: iconst_0
    1159: istore        44
    1161: iload         41
    1163: ifeq          1170
    1166: aconst_null
    1167: goto          1183
    1170: new           #75                 // class Position
    1173: dup
    1174: iload         17
    1176: iload         29
    1178: iload         42
    1180: invokespecial #113                // Method Position."<init>":(III)V
    1183: nop
    1184: aload         43
    1186: swap
    1187: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1192: pop
    1193: iinc          38, 1
    1196: goto          1126
    1199: aload         35
    1201: checkcast     #97                 // class java/util/List
    1204: nop
    1205: nop
    1206: aload         30
    1208: swap
    1209: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1214: pop
    1215: iinc          25, 1
    1218: goto          1051
    1221: aload         22
    1223: checkcast     #97                 // class java/util/List
    1226: nop
    1227: nop
    1228: aload         45
    1230: swap
    1231: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1236: pop
    1237: iinc          13, 1
    1240: goto          973
    1243: aload         10
    1245: checkcast     #97                 // class java/util/List
    1248: nop
    1249: checkcast     #55                 // class java/lang/Iterable
    1252: invokestatic  #142                // Method kotlin/collections/CollectionsKt.flatten:(Ljava/lang/Iterable;)Ljava/util/List;
    1255: checkcast     #55                 // class java/lang/Iterable
    1258: invokestatic  #142                // Method kotlin/collections/CollectionsKt.flatten:(Ljava/lang/Iterable;)Ljava/util/List;
    1261: checkcast     #55                 // class java/lang/Iterable
    1264: invokestatic  #145                // Method kotlin/collections/CollectionsKt.filterNotNull:(Ljava/lang/Iterable;)Ljava/util/List;
    1267: areturn

  public static final int getNumberOfSides(java.util.List<Position>);
    Code:
       0: aload_0
       1: ldc           #186                // String <this>
       3: invokestatic  #192                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: checkcast     #55                 // class java/lang/Iterable
      10: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      15: astore_3
      16: aload_3
      17: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      22: ifne          33
      25: new           #67                 // class java/util/NoSuchElementException
      28: dup
      29: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
      32: athrow
      33: aload_3
      34: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      39: checkcast     #75                 // class Position
      42: astore        4
      44: iconst_0
      45: istore        5
      47: aload         4
      49: invokevirtual #79                 // Method Position.getX:()I
      52: istore        4
      54: aload_3
      55: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      60: ifeq          98
      63: aload_3
      64: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      69: checkcast     #75                 // class Position
      72: astore        5
      74: iconst_0
      75: istore        6
      77: aload         5
      79: invokevirtual #79                 // Method Position.getX:()I
      82: istore        5
      84: iload         4
      86: iload         5
      88: if_icmpge     54
      91: iload         5
      93: istore        4
      95: goto          54
      98: iload         4
     100: istore_1
     101: aload_0
     102: checkcast     #55                 // class java/lang/Iterable
     105: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     110: astore        4
     112: aload         4
     114: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     119: ifne          130
     122: new           #67                 // class java/util/NoSuchElementException
     125: dup
     126: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
     129: athrow
     130: aload         4
     132: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     137: checkcast     #75                 // class Position
     140: astore        5
     142: iconst_0
     143: istore        6
     145: aload         5
     147: invokevirtual #82                 // Method Position.getY:()I
     150: istore        5
     152: aload         4
     154: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     159: ifeq          198
     162: aload         4
     164: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     169: checkcast     #75                 // class Position
     172: astore        6
     174: iconst_0
     175: istore        7
     177: aload         6
     179: invokevirtual #82                 // Method Position.getY:()I
     182: istore        6
     184: iload         5
     186: iload         6
     188: if_icmpge     152
     191: iload         6
     193: istore        5
     195: goto          152
     198: iload         5
     200: istore_2
     201: aload_0
     202: checkcast     #55                 // class java/lang/Iterable
     205: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     210: astore        5
     212: aload         5
     214: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     219: ifne          230
     222: new           #67                 // class java/util/NoSuchElementException
     225: dup
     226: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
     229: athrow
     230: aload         5
     232: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     237: checkcast     #75                 // class Position
     240: astore        6
     242: iconst_0
     243: istore        7
     245: aload         6
     247: invokevirtual #85                 // Method Position.getZ:()I
     250: istore        6
     252: aload         5
     254: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     259: ifeq          298
     262: aload         5
     264: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     269: checkcast     #75                 // class Position
     272: astore        7
     274: iconst_0
     275: istore        8
     277: aload         7
     279: invokevirtual #85                 // Method Position.getZ:()I
     282: istore        7
     284: iload         6
     286: iload         7
     288: if_icmpge     252
     291: iload         7
     293: istore        6
     295: goto          252
     298: iload         6
     300: istore_3
     301: new           #194                // class kotlin/ranges/IntRange
     304: dup
     305: iconst_0
     306: iload_2
     307: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     310: checkcast     #55                 // class java/lang/Iterable
     313: astore        5
     315: iconst_0
     316: istore        6
     318: aload         5
     320: astore        7
     322: new           #132                // class java/util/ArrayList
     325: dup
     326: aload         5
     328: bipush        10
     330: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     333: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     336: checkcast     #119                // class java/util/Collection
     339: astore        8
     341: iconst_0
     342: istore        9
     344: aload         7
     346: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     351: astore        10
     353: aload         10
     355: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     360: ifeq          507
     363: aload         10
     365: checkcast     #203                // class kotlin/collections/IntIterator
     368: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     371: istore        11
     373: aload         8
     375: iload         11
     377: istore        12
     379: astore        26
     381: iconst_0
     382: istore        13
     384: new           #194                // class kotlin/ranges/IntRange
     387: dup
     388: iconst_0
     389: iload_3
     390: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     393: checkcast     #55                 // class java/lang/Iterable
     396: astore        14
     398: iconst_0
     399: istore        15
     401: aload         14
     403: astore        16
     405: new           #132                // class java/util/ArrayList
     408: dup
     409: aload         14
     411: bipush        10
     413: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     416: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     419: checkcast     #119                // class java/util/Collection
     422: astore        17
     424: iconst_0
     425: istore        18
     427: aload         16
     429: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     434: astore        19
     436: aload         19
     438: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     443: ifeq          483
     446: aload         19
     448: checkcast     #203                // class kotlin/collections/IntIterator
     451: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     454: istore        20
     456: aload         17
     458: iload         20
     460: istore        21
     462: astore        22
     464: iconst_0
     465: istore        23
     467: iconst_0
     468: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     471: aload         22
     473: swap
     474: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     479: pop
     480: goto          436
     483: aload         17
     485: checkcast     #97                 // class java/util/List
     488: nop
     489: checkcast     #119                // class java/util/Collection
     492: invokestatic  #215                // Method kotlin/collections/CollectionsKt.toMutableList:(Ljava/util/Collection;)Ljava/util/List;
     495: aload         26
     497: swap
     498: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     503: pop
     504: goto          353
     507: aload         8
     509: checkcast     #97                 // class java/util/List
     512: nop
     513: astore        4
     515: new           #194                // class kotlin/ranges/IntRange
     518: dup
     519: iconst_0
     520: iload_3
     521: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     524: checkcast     #55                 // class java/lang/Iterable
     527: astore        6
     529: iconst_0
     530: istore        7
     532: aload         6
     534: astore        8
     536: new           #132                // class java/util/ArrayList
     539: dup
     540: aload         6
     542: bipush        10
     544: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     547: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     550: checkcast     #119                // class java/util/Collection
     553: astore        9
     555: iconst_0
     556: istore        10
     558: aload         8
     560: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     565: astore        11
     567: aload         11
     569: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     574: ifeq          721
     577: aload         11
     579: checkcast     #203                // class kotlin/collections/IntIterator
     582: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     585: istore        12
     587: aload         9
     589: iload         12
     591: istore        13
     593: astore        26
     595: iconst_0
     596: istore        14
     598: new           #194                // class kotlin/ranges/IntRange
     601: dup
     602: iconst_0
     603: iload_1
     604: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     607: checkcast     #55                 // class java/lang/Iterable
     610: astore        15
     612: iconst_0
     613: istore        16
     615: aload         15
     617: astore        17
     619: new           #132                // class java/util/ArrayList
     622: dup
     623: aload         15
     625: bipush        10
     627: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     630: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     633: checkcast     #119                // class java/util/Collection
     636: astore        18
     638: iconst_0
     639: istore        19
     641: aload         17
     643: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     648: astore        20
     650: aload         20
     652: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     657: ifeq          697
     660: aload         20
     662: checkcast     #203                // class kotlin/collections/IntIterator
     665: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     668: istore        21
     670: aload         18
     672: iload         21
     674: istore        22
     676: astore        23
     678: iconst_0
     679: istore        24
     681: iconst_0
     682: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     685: aload         23
     687: swap
     688: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     693: pop
     694: goto          650
     697: aload         18
     699: checkcast     #97                 // class java/util/List
     702: nop
     703: checkcast     #119                // class java/util/Collection
     706: invokestatic  #215                // Method kotlin/collections/CollectionsKt.toMutableList:(Ljava/util/Collection;)Ljava/util/List;
     709: aload         26
     711: swap
     712: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     717: pop
     718: goto          567
     721: aload         9
     723: checkcast     #97                 // class java/util/List
     726: nop
     727: astore        5
     729: new           #194                // class kotlin/ranges/IntRange
     732: dup
     733: iconst_0
     734: iload_1
     735: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     738: checkcast     #55                 // class java/lang/Iterable
     741: astore        7
     743: iconst_0
     744: istore        8
     746: aload         7
     748: astore        9
     750: new           #132                // class java/util/ArrayList
     753: dup
     754: aload         7
     756: bipush        10
     758: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     761: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     764: checkcast     #119                // class java/util/Collection
     767: astore        10
     769: iconst_0
     770: istore        11
     772: aload         9
     774: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     779: astore        12
     781: aload         12
     783: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     788: ifeq          935
     791: aload         12
     793: checkcast     #203                // class kotlin/collections/IntIterator
     796: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     799: istore        13
     801: aload         10
     803: iload         13
     805: istore        14
     807: astore        26
     809: iconst_0
     810: istore        15
     812: new           #194                // class kotlin/ranges/IntRange
     815: dup
     816: iconst_0
     817: iload_2
     818: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     821: checkcast     #55                 // class java/lang/Iterable
     824: astore        16
     826: iconst_0
     827: istore        17
     829: aload         16
     831: astore        18
     833: new           #132                // class java/util/ArrayList
     836: dup
     837: aload         16
     839: bipush        10
     841: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     844: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     847: checkcast     #119                // class java/util/Collection
     850: astore        19
     852: iconst_0
     853: istore        20
     855: aload         18
     857: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     862: astore        21
     864: aload         21
     866: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     871: ifeq          911
     874: aload         21
     876: checkcast     #203                // class kotlin/collections/IntIterator
     879: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     882: istore        22
     884: aload         19
     886: iload         22
     888: istore        23
     890: astore        24
     892: iconst_0
     893: istore        25
     895: iconst_0
     896: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     899: aload         24
     901: swap
     902: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     907: pop
     908: goto          864
     911: aload         19
     913: checkcast     #97                 // class java/util/List
     916: nop
     917: checkcast     #119                // class java/util/Collection
     920: invokestatic  #215                // Method kotlin/collections/CollectionsKt.toMutableList:(Ljava/util/Collection;)Ljava/util/List;
     923: aload         26
     925: swap
     926: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     931: pop
     932: goto          781
     935: aload         10
     937: checkcast     #97                 // class java/util/List
     940: nop
     941: astore        6
     943: aload_0
     944: invokeinterface #98,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     949: astore        7
     951: aload         7
     953: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     958: ifeq          1390
     961: aload         7
     963: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     968: checkcast     #75                 // class Position
     971: astore        8
     973: aload         4
     975: aload         8
     977: invokevirtual #82                 // Method Position.getY:()I
     980: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     985: checkcast     #97                 // class java/util/List
     988: aload         8
     990: invokevirtual #85                 // Method Position.getZ:()I
     993: aload         4
     995: aload         8
     997: invokevirtual #82                 // Method Position.getY:()I
    1000: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1005: checkcast     #97                 // class java/util/List
    1008: aload         8
    1010: invokevirtual #85                 // Method Position.getZ:()I
    1013: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1018: checkcast     #221                // class java/lang/Number
    1021: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1024: iconst_1
    1025: aload         8
    1027: invokevirtual #79                 // Method Position.getX:()I
    1030: ishl
    1031: ixor
    1032: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1035: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1040: pop
    1041: aload         4
    1043: aload         8
    1045: invokevirtual #82                 // Method Position.getY:()I
    1048: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1053: checkcast     #97                 // class java/util/List
    1056: aload         8
    1058: invokevirtual #85                 // Method Position.getZ:()I
    1061: aload         4
    1063: aload         8
    1065: invokevirtual #82                 // Method Position.getY:()I
    1068: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1073: checkcast     #97                 // class java/util/List
    1076: aload         8
    1078: invokevirtual #85                 // Method Position.getZ:()I
    1081: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1086: checkcast     #221                // class java/lang/Number
    1089: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1092: iconst_1
    1093: aload         8
    1095: invokevirtual #79                 // Method Position.getX:()I
    1098: iconst_1
    1099: iadd
    1100: ishl
    1101: ixor
    1102: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1105: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1110: pop
    1111: aload         5
    1113: aload         8
    1115: invokevirtual #85                 // Method Position.getZ:()I
    1118: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1123: checkcast     #97                 // class java/util/List
    1126: aload         8
    1128: invokevirtual #79                 // Method Position.getX:()I
    1131: aload         5
    1133: aload         8
    1135: invokevirtual #85                 // Method Position.getZ:()I
    1138: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1143: checkcast     #97                 // class java/util/List
    1146: aload         8
    1148: invokevirtual #79                 // Method Position.getX:()I
    1151: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1156: checkcast     #221                // class java/lang/Number
    1159: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1162: iconst_1
    1163: aload         8
    1165: invokevirtual #82                 // Method Position.getY:()I
    1168: ishl
    1169: ixor
    1170: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1173: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1178: pop
    1179: aload         5
    1181: aload         8
    1183: invokevirtual #85                 // Method Position.getZ:()I
    1186: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1191: checkcast     #97                 // class java/util/List
    1194: aload         8
    1196: invokevirtual #79                 // Method Position.getX:()I
    1199: aload         5
    1201: aload         8
    1203: invokevirtual #85                 // Method Position.getZ:()I
    1206: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1211: checkcast     #97                 // class java/util/List
    1214: aload         8
    1216: invokevirtual #79                 // Method Position.getX:()I
    1219: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1224: checkcast     #221                // class java/lang/Number
    1227: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1230: iconst_1
    1231: aload         8
    1233: invokevirtual #82                 // Method Position.getY:()I
    1236: iconst_1
    1237: iadd
    1238: ishl
    1239: ixor
    1240: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1243: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1248: pop
    1249: aload         6
    1251: aload         8
    1253: invokevirtual #79                 // Method Position.getX:()I
    1256: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1261: checkcast     #97                 // class java/util/List
    1264: aload         8
    1266: invokevirtual #82                 // Method Position.getY:()I
    1269: aload         6
    1271: aload         8
    1273: invokevirtual #79                 // Method Position.getX:()I
    1276: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1281: checkcast     #97                 // class java/util/List
    1284: aload         8
    1286: invokevirtual #82                 // Method Position.getY:()I
    1289: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1294: checkcast     #221                // class java/lang/Number
    1297: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1300: iconst_1
    1301: aload         8
    1303: invokevirtual #85                 // Method Position.getZ:()I
    1306: ishl
    1307: ixor
    1308: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1311: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1316: pop
    1317: aload         6
    1319: aload         8
    1321: invokevirtual #79                 // Method Position.getX:()I
    1324: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1329: checkcast     #97                 // class java/util/List
    1332: aload         8
    1334: invokevirtual #82                 // Method Position.getY:()I
    1337: aload         6
    1339: aload         8
    1341: invokevirtual #79                 // Method Position.getX:()I
    1344: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1349: checkcast     #97                 // class java/util/List
    1352: aload         8
    1354: invokevirtual #82                 // Method Position.getY:()I
    1357: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1362: checkcast     #221                // class java/lang/Number
    1365: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1368: iconst_1
    1369: aload         8
    1371: invokevirtual #85                 // Method Position.getZ:()I
    1374: iconst_1
    1375: iadd
    1376: ishl
    1377: ixor
    1378: invokestatic  #211                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1381: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1386: pop
    1387: goto          951
    1390: aload         4
    1392: checkcast     #55                 // class java/lang/Iterable
    1395: astore        8
    1397: iconst_0
    1398: istore        9
    1400: aload         8
    1402: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1407: astore        10
    1409: aload         10
    1411: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1416: ifeq          1529
    1419: aload         10
    1421: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1426: astore        11
    1428: iload         9
    1430: aload         11
    1432: checkcast     #97                 // class java/util/List
    1435: astore        12
    1437: istore        26
    1439: iconst_0
    1440: istore        13
    1442: aload         12
    1444: checkcast     #55                 // class java/lang/Iterable
    1447: astore        14
    1449: iconst_0
    1450: istore        15
    1452: aload         14
    1454: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1459: astore        16
    1461: aload         16
    1463: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1468: ifeq          1514
    1471: aload         16
    1473: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1478: astore        17
    1480: iload         15
    1482: aload         17
    1484: checkcast     #221                // class java/lang/Number
    1487: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1490: istore        18
    1492: istore        19
    1494: iconst_0
    1495: istore        20
    1497: iload         18
    1499: invokestatic  #232                // Method java/lang/Integer.bitCount:(I)I
    1502: istore        21
    1504: iload         19
    1506: iload         21
    1508: iadd
    1509: istore        15
    1511: goto          1461
    1514: iload         15
    1516: nop
    1517: istore        27
    1519: iload         26
    1521: iload         27
    1523: iadd
    1524: istore        9
    1526: goto          1409
    1529: iload         9
    1531: istore        7
    1533: aload         5
    1535: checkcast     #55                 // class java/lang/Iterable
    1538: astore        9
    1540: iconst_0
    1541: istore        10
    1543: aload         9
    1545: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1550: astore        11
    1552: aload         11
    1554: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1559: ifeq          1672
    1562: aload         11
    1564: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1569: astore        12
    1571: iload         10
    1573: aload         12
    1575: checkcast     #97                 // class java/util/List
    1578: astore        13
    1580: istore        26
    1582: iconst_0
    1583: istore        14
    1585: aload         13
    1587: checkcast     #55                 // class java/lang/Iterable
    1590: astore        15
    1592: iconst_0
    1593: istore        16
    1595: aload         15
    1597: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1602: astore        17
    1604: aload         17
    1606: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1611: ifeq          1657
    1614: aload         17
    1616: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1621: astore        18
    1623: iload         16
    1625: aload         18
    1627: checkcast     #221                // class java/lang/Number
    1630: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1633: istore        19
    1635: istore        20
    1637: iconst_0
    1638: istore        21
    1640: iload         19
    1642: invokestatic  #232                // Method java/lang/Integer.bitCount:(I)I
    1645: istore        22
    1647: iload         20
    1649: iload         22
    1651: iadd
    1652: istore        16
    1654: goto          1604
    1657: iload         16
    1659: nop
    1660: istore        27
    1662: iload         26
    1664: iload         27
    1666: iadd
    1667: istore        10
    1669: goto          1552
    1672: iload         10
    1674: istore        8
    1676: aload         6
    1678: checkcast     #55                 // class java/lang/Iterable
    1681: astore        10
    1683: iconst_0
    1684: istore        11
    1686: aload         10
    1688: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1693: astore        12
    1695: aload         12
    1697: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1702: ifeq          1815
    1705: aload         12
    1707: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1712: astore        13
    1714: iload         11
    1716: aload         13
    1718: checkcast     #97                 // class java/util/List
    1721: astore        14
    1723: istore        26
    1725: iconst_0
    1726: istore        15
    1728: aload         14
    1730: checkcast     #55                 // class java/lang/Iterable
    1733: astore        16
    1735: iconst_0
    1736: istore        17
    1738: aload         16
    1740: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1745: astore        18
    1747: aload         18
    1749: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1754: ifeq          1800
    1757: aload         18
    1759: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1764: astore        19
    1766: iload         17
    1768: aload         19
    1770: checkcast     #221                // class java/lang/Number
    1773: invokevirtual #224                // Method java/lang/Number.intValue:()I
    1776: istore        20
    1778: istore        21
    1780: iconst_0
    1781: istore        22
    1783: iload         20
    1785: invokestatic  #232                // Method java/lang/Integer.bitCount:(I)I
    1788: istore        23
    1790: iload         21
    1792: iload         23
    1794: iadd
    1795: istore        17
    1797: goto          1747
    1800: iload         17
    1802: nop
    1803: istore        27
    1805: iload         26
    1807: iload         27
    1809: iadd
    1810: istore        11
    1812: goto          1695
    1815: iload         11
    1817: istore        9
    1819: iload         7
    1821: iload         8
    1823: iadd
    1824: iload         9
    1826: iadd
    1827: ireturn

  public static final int getNumberOfSidesArrayImpl(java.util.List<Position>);
    Code:
       0: aload_0
       1: ldc           #186                // String <this>
       3: invokestatic  #192                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: checkcast     #55                 // class java/lang/Iterable
      10: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      15: astore_3
      16: aload_3
      17: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      22: ifne          33
      25: new           #67                 // class java/util/NoSuchElementException
      28: dup
      29: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
      32: athrow
      33: aload_3
      34: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      39: checkcast     #75                 // class Position
      42: astore        4
      44: iconst_0
      45: istore        5
      47: aload         4
      49: invokevirtual #79                 // Method Position.getX:()I
      52: istore        4
      54: aload_3
      55: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      60: ifeq          98
      63: aload_3
      64: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      69: checkcast     #75                 // class Position
      72: astore        5
      74: iconst_0
      75: istore        6
      77: aload         5
      79: invokevirtual #79                 // Method Position.getX:()I
      82: istore        5
      84: iload         4
      86: iload         5
      88: if_icmpge     54
      91: iload         5
      93: istore        4
      95: goto          54
      98: iload         4
     100: istore_1
     101: aload_0
     102: checkcast     #55                 // class java/lang/Iterable
     105: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     110: astore        4
     112: aload         4
     114: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     119: ifne          130
     122: new           #67                 // class java/util/NoSuchElementException
     125: dup
     126: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
     129: athrow
     130: aload         4
     132: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     137: checkcast     #75                 // class Position
     140: astore        5
     142: iconst_0
     143: istore        6
     145: aload         5
     147: invokevirtual #82                 // Method Position.getY:()I
     150: istore        5
     152: aload         4
     154: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     159: ifeq          198
     162: aload         4
     164: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     169: checkcast     #75                 // class Position
     172: astore        6
     174: iconst_0
     175: istore        7
     177: aload         6
     179: invokevirtual #82                 // Method Position.getY:()I
     182: istore        6
     184: iload         5
     186: iload         6
     188: if_icmpge     152
     191: iload         6
     193: istore        5
     195: goto          152
     198: iload         5
     200: istore_2
     201: aload_0
     202: checkcast     #55                 // class java/lang/Iterable
     205: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     210: astore        5
     212: aload         5
     214: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     219: ifne          230
     222: new           #67                 // class java/util/NoSuchElementException
     225: dup
     226: invokespecial #70                 // Method java/util/NoSuchElementException."<init>":()V
     229: athrow
     230: aload         5
     232: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     237: checkcast     #75                 // class Position
     240: astore        6
     242: iconst_0
     243: istore        7
     245: aload         6
     247: invokevirtual #85                 // Method Position.getZ:()I
     250: istore        6
     252: aload         5
     254: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     259: ifeq          298
     262: aload         5
     264: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     269: checkcast     #75                 // class Position
     272: astore        7
     274: iconst_0
     275: istore        8
     277: aload         7
     279: invokevirtual #85                 // Method Position.getZ:()I
     282: istore        7
     284: iload         6
     286: iload         7
     288: if_icmpge     252
     291: iload         7
     293: istore        6
     295: goto          252
     298: iload         6
     300: istore_3
     301: new           #194                // class kotlin/ranges/IntRange
     304: dup
     305: iconst_0
     306: iload_2
     307: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     310: checkcast     #55                 // class java/lang/Iterable
     313: astore        5
     315: iconst_0
     316: istore        6
     318: aload         5
     320: astore        7
     322: new           #132                // class java/util/ArrayList
     325: dup
     326: aload         5
     328: bipush        10
     330: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     333: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     336: checkcast     #119                // class java/util/Collection
     339: astore        8
     341: iconst_0
     342: istore        9
     344: aload         7
     346: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     351: astore        10
     353: aload         10
     355: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     360: ifeq          611
     363: aload         10
     365: checkcast     #203                // class kotlin/collections/IntIterator
     368: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     371: istore        11
     373: aload         8
     375: iload         11
     377: istore        12
     379: astore        36
     381: iconst_0
     382: istore        13
     384: new           #194                // class kotlin/ranges/IntRange
     387: dup
     388: iconst_0
     389: iload_3
     390: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     393: checkcast     #55                 // class java/lang/Iterable
     396: astore        14
     398: iconst_0
     399: istore        15
     401: aload         14
     403: astore        16
     405: new           #132                // class java/util/ArrayList
     408: dup
     409: aload         14
     411: bipush        10
     413: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     416: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     419: checkcast     #119                // class java/util/Collection
     422: astore        17
     424: iconst_0
     425: istore        18
     427: aload         16
     429: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     434: astore        19
     436: aload         19
     438: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     443: ifeq          592
     446: aload         19
     448: checkcast     #203                // class kotlin/collections/IntIterator
     451: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     454: istore        20
     456: aload         17
     458: iload         20
     460: istore        21
     462: astore        22
     464: iconst_0
     465: istore        23
     467: new           #194                // class kotlin/ranges/IntRange
     470: dup
     471: iconst_0
     472: iload_1
     473: iconst_1
     474: iadd
     475: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     478: checkcast     #55                 // class java/lang/Iterable
     481: astore        24
     483: iconst_0
     484: istore        25
     486: aload         24
     488: astore        26
     490: new           #132                // class java/util/ArrayList
     493: dup
     494: aload         24
     496: bipush        10
     498: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     501: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     504: checkcast     #119                // class java/util/Collection
     507: astore        27
     509: iconst_0
     510: istore        28
     512: aload         26
     514: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     519: astore        29
     521: aload         29
     523: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     528: ifeq          568
     531: aload         29
     533: checkcast     #203                // class kotlin/collections/IntIterator
     536: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     539: istore        30
     541: aload         27
     543: iload         30
     545: istore        31
     547: astore        32
     549: iconst_0
     550: istore        33
     552: iconst_0
     553: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     556: aload         32
     558: swap
     559: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     564: pop
     565: goto          521
     568: aload         27
     570: checkcast     #97                 // class java/util/List
     573: nop
     574: checkcast     #119                // class java/util/Collection
     577: invokestatic  #215                // Method kotlin/collections/CollectionsKt.toMutableList:(Ljava/util/Collection;)Ljava/util/List;
     580: aload         22
     582: swap
     583: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     588: pop
     589: goto          436
     592: aload         17
     594: checkcast     #97                 // class java/util/List
     597: nop
     598: nop
     599: aload         36
     601: swap
     602: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     607: pop
     608: goto          353
     611: aload         8
     613: checkcast     #97                 // class java/util/List
     616: nop
     617: astore        4
     619: new           #194                // class kotlin/ranges/IntRange
     622: dup
     623: iconst_0
     624: iload_3
     625: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     628: checkcast     #55                 // class java/lang/Iterable
     631: astore        6
     633: iconst_0
     634: istore        7
     636: aload         6
     638: astore        8
     640: new           #132                // class java/util/ArrayList
     643: dup
     644: aload         6
     646: bipush        10
     648: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     651: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     654: checkcast     #119                // class java/util/Collection
     657: astore        9
     659: iconst_0
     660: istore        10
     662: aload         8
     664: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     669: astore        11
     671: aload         11
     673: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     678: ifeq          929
     681: aload         11
     683: checkcast     #203                // class kotlin/collections/IntIterator
     686: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     689: istore        12
     691: aload         9
     693: iload         12
     695: istore        13
     697: astore        36
     699: iconst_0
     700: istore        14
     702: new           #194                // class kotlin/ranges/IntRange
     705: dup
     706: iconst_0
     707: iload_1
     708: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     711: checkcast     #55                 // class java/lang/Iterable
     714: astore        15
     716: iconst_0
     717: istore        16
     719: aload         15
     721: astore        17
     723: new           #132                // class java/util/ArrayList
     726: dup
     727: aload         15
     729: bipush        10
     731: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     734: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     737: checkcast     #119                // class java/util/Collection
     740: astore        18
     742: iconst_0
     743: istore        19
     745: aload         17
     747: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     752: astore        20
     754: aload         20
     756: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     761: ifeq          910
     764: aload         20
     766: checkcast     #203                // class kotlin/collections/IntIterator
     769: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     772: istore        21
     774: aload         18
     776: iload         21
     778: istore        22
     780: astore        23
     782: iconst_0
     783: istore        24
     785: new           #194                // class kotlin/ranges/IntRange
     788: dup
     789: iconst_0
     790: iload_2
     791: iconst_1
     792: iadd
     793: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     796: checkcast     #55                 // class java/lang/Iterable
     799: astore        25
     801: iconst_0
     802: istore        26
     804: aload         25
     806: astore        27
     808: new           #132                // class java/util/ArrayList
     811: dup
     812: aload         25
     814: bipush        10
     816: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     819: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     822: checkcast     #119                // class java/util/Collection
     825: astore        28
     827: iconst_0
     828: istore        29
     830: aload         27
     832: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     837: astore        30
     839: aload         30
     841: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     846: ifeq          886
     849: aload         30
     851: checkcast     #203                // class kotlin/collections/IntIterator
     854: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
     857: istore        31
     859: aload         28
     861: iload         31
     863: istore        32
     865: astore        33
     867: iconst_0
     868: istore        34
     870: iconst_0
     871: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     874: aload         33
     876: swap
     877: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     882: pop
     883: goto          839
     886: aload         28
     888: checkcast     #97                 // class java/util/List
     891: nop
     892: checkcast     #119                // class java/util/Collection
     895: invokestatic  #215                // Method kotlin/collections/CollectionsKt.toMutableList:(Ljava/util/Collection;)Ljava/util/List;
     898: aload         23
     900: swap
     901: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     906: pop
     907: goto          754
     910: aload         18
     912: checkcast     #97                 // class java/util/List
     915: nop
     916: nop
     917: aload         36
     919: swap
     920: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     925: pop
     926: goto          671
     929: aload         9
     931: checkcast     #97                 // class java/util/List
     934: nop
     935: astore        5
     937: new           #194                // class kotlin/ranges/IntRange
     940: dup
     941: iconst_0
     942: iload_1
     943: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
     946: checkcast     #55                 // class java/lang/Iterable
     949: astore        7
     951: iconst_0
     952: istore        8
     954: aload         7
     956: astore        9
     958: new           #132                // class java/util/ArrayList
     961: dup
     962: aload         7
     964: bipush        10
     966: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     969: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     972: checkcast     #119                // class java/util/Collection
     975: astore        10
     977: iconst_0
     978: istore        11
     980: aload         9
     982: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     987: astore        12
     989: aload         12
     991: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     996: ifeq          1247
     999: aload         12
    1001: checkcast     #203                // class kotlin/collections/IntIterator
    1004: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
    1007: istore        13
    1009: aload         10
    1011: iload         13
    1013: istore        14
    1015: astore        36
    1017: iconst_0
    1018: istore        15
    1020: new           #194                // class kotlin/ranges/IntRange
    1023: dup
    1024: iconst_0
    1025: iload_2
    1026: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
    1029: checkcast     #55                 // class java/lang/Iterable
    1032: astore        16
    1034: iconst_0
    1035: istore        17
    1037: aload         16
    1039: astore        18
    1041: new           #132                // class java/util/ArrayList
    1044: dup
    1045: aload         16
    1047: bipush        10
    1049: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1052: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
    1055: checkcast     #119                // class java/util/Collection
    1058: astore        19
    1060: iconst_0
    1061: istore        20
    1063: aload         18
    1065: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1070: astore        21
    1072: aload         21
    1074: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1079: ifeq          1228
    1082: aload         21
    1084: checkcast     #203                // class kotlin/collections/IntIterator
    1087: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
    1090: istore        22
    1092: aload         19
    1094: iload         22
    1096: istore        23
    1098: astore        24
    1100: iconst_0
    1101: istore        25
    1103: new           #194                // class kotlin/ranges/IntRange
    1106: dup
    1107: iconst_0
    1108: iload_3
    1109: iconst_1
    1110: iadd
    1111: invokespecial #197                // Method kotlin/ranges/IntRange."<init>":(II)V
    1114: checkcast     #55                 // class java/lang/Iterable
    1117: astore        26
    1119: iconst_0
    1120: istore        27
    1122: aload         26
    1124: astore        28
    1126: new           #132                // class java/util/ArrayList
    1129: dup
    1130: aload         26
    1132: bipush        10
    1134: invokestatic  #201                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1137: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
    1140: checkcast     #119                // class java/util/Collection
    1143: astore        29
    1145: iconst_0
    1146: istore        30
    1148: aload         28
    1150: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1155: astore        31
    1157: aload         31
    1159: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1164: ifeq          1204
    1167: aload         31
    1169: checkcast     #203                // class kotlin/collections/IntIterator
    1172: invokevirtual #206                // Method kotlin/collections/IntIterator.nextInt:()I
    1175: istore        32
    1177: aload         29
    1179: iload         32
    1181: istore        33
    1183: astore        34
    1185: iconst_0
    1186: istore        35
    1188: iconst_0
    1189: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1192: aload         34
    1194: swap
    1195: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1200: pop
    1201: goto          1157
    1204: aload         29
    1206: checkcast     #97                 // class java/util/List
    1209: nop
    1210: checkcast     #119                // class java/util/Collection
    1213: invokestatic  #215                // Method kotlin/collections/CollectionsKt.toMutableList:(Ljava/util/Collection;)Ljava/util/List;
    1216: aload         24
    1218: swap
    1219: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1224: pop
    1225: goto          1072
    1228: aload         19
    1230: checkcast     #97                 // class java/util/List
    1233: nop
    1234: nop
    1235: aload         36
    1237: swap
    1238: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1243: pop
    1244: goto          989
    1247: aload         10
    1249: checkcast     #97                 // class java/util/List
    1252: nop
    1253: astore        6
    1255: aload_0
    1256: invokeinterface #98,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
    1261: astore        7
    1263: aload         7
    1265: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1270: ifeq          1864
    1273: aload         7
    1275: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1280: checkcast     #75                 // class Position
    1283: astore        8
    1285: aload         4
    1287: aload         8
    1289: invokevirtual #82                 // Method Position.getY:()I
    1292: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1297: checkcast     #97                 // class java/util/List
    1300: aload         8
    1302: invokevirtual #85                 // Method Position.getZ:()I
    1305: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1310: checkcast     #97                 // class java/util/List
    1313: aload         8
    1315: invokevirtual #79                 // Method Position.getX:()I
    1318: aload         4
    1320: aload         8
    1322: invokevirtual #82                 // Method Position.getY:()I
    1325: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1330: checkcast     #97                 // class java/util/List
    1333: aload         8
    1335: invokevirtual #85                 // Method Position.getZ:()I
    1338: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1343: checkcast     #97                 // class java/util/List
    1346: aload         8
    1348: invokevirtual #79                 // Method Position.getX:()I
    1351: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1356: checkcast     #91                 // class java/lang/Boolean
    1359: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1362: ifne          1369
    1365: iconst_1
    1366: goto          1370
    1369: iconst_0
    1370: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1373: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1378: pop
    1379: aload         4
    1381: aload         8
    1383: invokevirtual #82                 // Method Position.getY:()I
    1386: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1391: checkcast     #97                 // class java/util/List
    1394: aload         8
    1396: invokevirtual #85                 // Method Position.getZ:()I
    1399: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1404: checkcast     #97                 // class java/util/List
    1407: aload         8
    1409: invokevirtual #79                 // Method Position.getX:()I
    1412: iconst_1
    1413: iadd
    1414: aload         4
    1416: aload         8
    1418: invokevirtual #82                 // Method Position.getY:()I
    1421: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1426: checkcast     #97                 // class java/util/List
    1429: aload         8
    1431: invokevirtual #85                 // Method Position.getZ:()I
    1434: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1439: checkcast     #97                 // class java/util/List
    1442: aload         8
    1444: invokevirtual #79                 // Method Position.getX:()I
    1447: iconst_1
    1448: iadd
    1449: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1454: checkcast     #91                 // class java/lang/Boolean
    1457: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1460: ifne          1467
    1463: iconst_1
    1464: goto          1468
    1467: iconst_0
    1468: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1471: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1476: pop
    1477: aload         5
    1479: aload         8
    1481: invokevirtual #85                 // Method Position.getZ:()I
    1484: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1489: checkcast     #97                 // class java/util/List
    1492: aload         8
    1494: invokevirtual #79                 // Method Position.getX:()I
    1497: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1502: checkcast     #97                 // class java/util/List
    1505: aload         8
    1507: invokevirtual #82                 // Method Position.getY:()I
    1510: aload         5
    1512: aload         8
    1514: invokevirtual #85                 // Method Position.getZ:()I
    1517: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1522: checkcast     #97                 // class java/util/List
    1525: aload         8
    1527: invokevirtual #79                 // Method Position.getX:()I
    1530: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1535: checkcast     #97                 // class java/util/List
    1538: aload         8
    1540: invokevirtual #82                 // Method Position.getY:()I
    1543: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1548: checkcast     #91                 // class java/lang/Boolean
    1551: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1554: ifne          1561
    1557: iconst_1
    1558: goto          1562
    1561: iconst_0
    1562: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1565: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1570: pop
    1571: aload         5
    1573: aload         8
    1575: invokevirtual #85                 // Method Position.getZ:()I
    1578: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1583: checkcast     #97                 // class java/util/List
    1586: aload         8
    1588: invokevirtual #79                 // Method Position.getX:()I
    1591: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1596: checkcast     #97                 // class java/util/List
    1599: aload         8
    1601: invokevirtual #82                 // Method Position.getY:()I
    1604: iconst_1
    1605: iadd
    1606: aload         5
    1608: aload         8
    1610: invokevirtual #85                 // Method Position.getZ:()I
    1613: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1618: checkcast     #97                 // class java/util/List
    1621: aload         8
    1623: invokevirtual #79                 // Method Position.getX:()I
    1626: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1631: checkcast     #97                 // class java/util/List
    1634: aload         8
    1636: invokevirtual #82                 // Method Position.getY:()I
    1639: iconst_1
    1640: iadd
    1641: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1646: checkcast     #91                 // class java/lang/Boolean
    1649: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1652: ifne          1659
    1655: iconst_1
    1656: goto          1660
    1659: iconst_0
    1660: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1663: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1668: pop
    1669: aload         6
    1671: aload         8
    1673: invokevirtual #79                 // Method Position.getX:()I
    1676: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1681: checkcast     #97                 // class java/util/List
    1684: aload         8
    1686: invokevirtual #82                 // Method Position.getY:()I
    1689: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1694: checkcast     #97                 // class java/util/List
    1697: aload         8
    1699: invokevirtual #85                 // Method Position.getZ:()I
    1702: aload         6
    1704: aload         8
    1706: invokevirtual #79                 // Method Position.getX:()I
    1709: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1714: checkcast     #97                 // class java/util/List
    1717: aload         8
    1719: invokevirtual #82                 // Method Position.getY:()I
    1722: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1727: checkcast     #97                 // class java/util/List
    1730: aload         8
    1732: invokevirtual #85                 // Method Position.getZ:()I
    1735: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1740: checkcast     #91                 // class java/lang/Boolean
    1743: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1746: ifne          1753
    1749: iconst_1
    1750: goto          1754
    1753: iconst_0
    1754: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1757: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1762: pop
    1763: aload         6
    1765: aload         8
    1767: invokevirtual #79                 // Method Position.getX:()I
    1770: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1775: checkcast     #97                 // class java/util/List
    1778: aload         8
    1780: invokevirtual #82                 // Method Position.getY:()I
    1783: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1788: checkcast     #97                 // class java/util/List
    1791: aload         8
    1793: invokevirtual #85                 // Method Position.getZ:()I
    1796: iconst_1
    1797: iadd
    1798: aload         6
    1800: aload         8
    1802: invokevirtual #79                 // Method Position.getX:()I
    1805: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1810: checkcast     #97                 // class java/util/List
    1813: aload         8
    1815: invokevirtual #82                 // Method Position.getY:()I
    1818: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1823: checkcast     #97                 // class java/util/List
    1826: aload         8
    1828: invokevirtual #85                 // Method Position.getZ:()I
    1831: iconst_1
    1832: iadd
    1833: invokeinterface #219,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1838: checkcast     #91                 // class java/lang/Boolean
    1841: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    1844: ifne          1851
    1847: iconst_1
    1848: goto          1852
    1851: iconst_0
    1852: invokestatic  #95                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
    1855: invokeinterface #228,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
    1860: pop
    1861: goto          1263
    1864: aload         4
    1866: checkcast     #55                 // class java/lang/Iterable
    1869: astore        8
    1871: iconst_0
    1872: istore        9
    1874: aload         8
    1876: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1881: astore        10
    1883: aload         10
    1885: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1890: ifeq          2098
    1893: aload         10
    1895: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1900: astore        11
    1902: iload         9
    1904: aload         11
    1906: checkcast     #97                 // class java/util/List
    1909: astore        12
    1911: istore        36
    1913: iconst_0
    1914: istore        13
    1916: aload         12
    1918: checkcast     #55                 // class java/lang/Iterable
    1921: astore        14
    1923: iconst_0
    1924: istore        15
    1926: aload         14
    1928: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1933: astore        16
    1935: aload         16
    1937: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1942: ifeq          2083
    1945: aload         16
    1947: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1952: astore        17
    1954: iload         15
    1956: aload         17
    1958: checkcast     #97                 // class java/util/List
    1961: astore        18
    1963: istore        19
    1965: iconst_0
    1966: istore        20
    1968: aload         18
    1970: checkcast     #55                 // class java/lang/Iterable
    1973: astore        21
    1975: iconst_0
    1976: istore        22
    1978: aload         21
    1980: astore        23
    1982: new           #132                // class java/util/ArrayList
    1985: dup
    1986: invokespecial #262                // Method java/util/ArrayList."<init>":()V
    1989: checkcast     #119                // class java/util/Collection
    1992: astore        24
    1994: iconst_0
    1995: istore        25
    1997: aload         23
    1999: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2004: astore        26
    2006: aload         26
    2008: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2013: ifeq          2056
    2016: aload         26
    2018: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2023: astore        27
    2025: aload         27
    2027: checkcast     #91                 // class java/lang/Boolean
    2030: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    2033: istore        28
    2035: iconst_0
    2036: istore        29
    2038: iload         28
    2040: ifeq          2006
    2043: aload         24
    2045: aload         27
    2047: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    2052: pop
    2053: goto          2006
    2056: aload         24
    2058: checkcast     #97                 // class java/util/List
    2061: nop
    2062: checkcast     #119                // class java/util/Collection
    2065: invokeinterface #265,  1          // InterfaceMethod java/util/Collection.size:()I
    2070: nop
    2071: istore        30
    2073: iload         19
    2075: iload         30
    2077: iadd
    2078: istore        15
    2080: goto          1935
    2083: iload         15
    2085: nop
    2086: istore        37
    2088: iload         36
    2090: iload         37
    2092: iadd
    2093: istore        9
    2095: goto          1883
    2098: iload         9
    2100: istore        7
    2102: aload         5
    2104: checkcast     #55                 // class java/lang/Iterable
    2107: astore        9
    2109: iconst_0
    2110: istore        10
    2112: aload         9
    2114: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2119: astore        11
    2121: aload         11
    2123: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2128: ifeq          2336
    2131: aload         11
    2133: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2138: astore        12
    2140: iload         10
    2142: aload         12
    2144: checkcast     #97                 // class java/util/List
    2147: astore        13
    2149: istore        36
    2151: iconst_0
    2152: istore        14
    2154: aload         13
    2156: checkcast     #55                 // class java/lang/Iterable
    2159: astore        15
    2161: iconst_0
    2162: istore        16
    2164: aload         15
    2166: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2171: astore        17
    2173: aload         17
    2175: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2180: ifeq          2321
    2183: aload         17
    2185: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2190: astore        18
    2192: iload         16
    2194: aload         18
    2196: checkcast     #97                 // class java/util/List
    2199: astore        19
    2201: istore        20
    2203: iconst_0
    2204: istore        21
    2206: aload         19
    2208: checkcast     #55                 // class java/lang/Iterable
    2211: astore        22
    2213: iconst_0
    2214: istore        23
    2216: aload         22
    2218: astore        24
    2220: new           #132                // class java/util/ArrayList
    2223: dup
    2224: invokespecial #262                // Method java/util/ArrayList."<init>":()V
    2227: checkcast     #119                // class java/util/Collection
    2230: astore        25
    2232: iconst_0
    2233: istore        26
    2235: aload         24
    2237: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2242: astore        27
    2244: aload         27
    2246: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2251: ifeq          2294
    2254: aload         27
    2256: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2261: astore        28
    2263: aload         28
    2265: checkcast     #91                 // class java/lang/Boolean
    2268: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    2271: istore        29
    2273: iconst_0
    2274: istore        30
    2276: iload         29
    2278: ifeq          2244
    2281: aload         25
    2283: aload         28
    2285: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    2290: pop
    2291: goto          2244
    2294: aload         25
    2296: checkcast     #97                 // class java/util/List
    2299: nop
    2300: checkcast     #119                // class java/util/Collection
    2303: invokeinterface #265,  1          // InterfaceMethod java/util/Collection.size:()I
    2308: nop
    2309: istore        31
    2311: iload         20
    2313: iload         31
    2315: iadd
    2316: istore        16
    2318: goto          2173
    2321: iload         16
    2323: nop
    2324: istore        37
    2326: iload         36
    2328: iload         37
    2330: iadd
    2331: istore        10
    2333: goto          2121
    2336: iload         10
    2338: istore        8
    2340: aload         6
    2342: checkcast     #55                 // class java/lang/Iterable
    2345: astore        10
    2347: iconst_0
    2348: istore        11
    2350: aload         10
    2352: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2357: astore        12
    2359: aload         12
    2361: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2366: ifeq          2574
    2369: aload         12
    2371: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2376: astore        13
    2378: iload         11
    2380: aload         13
    2382: checkcast     #97                 // class java/util/List
    2385: astore        14
    2387: istore        36
    2389: iconst_0
    2390: istore        15
    2392: aload         14
    2394: checkcast     #55                 // class java/lang/Iterable
    2397: astore        16
    2399: iconst_0
    2400: istore        17
    2402: aload         16
    2404: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2409: astore        18
    2411: aload         18
    2413: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2418: ifeq          2559
    2421: aload         18
    2423: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2428: astore        19
    2430: iload         17
    2432: aload         19
    2434: checkcast     #97                 // class java/util/List
    2437: astore        20
    2439: istore        21
    2441: iconst_0
    2442: istore        22
    2444: aload         20
    2446: checkcast     #55                 // class java/lang/Iterable
    2449: astore        23
    2451: iconst_0
    2452: istore        24
    2454: aload         23
    2456: astore        25
    2458: new           #132                // class java/util/ArrayList
    2461: dup
    2462: invokespecial #262                // Method java/util/ArrayList."<init>":()V
    2465: checkcast     #119                // class java/util/Collection
    2468: astore        26
    2470: iconst_0
    2471: istore        27
    2473: aload         25
    2475: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2480: astore        28
    2482: aload         28
    2484: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2489: ifeq          2532
    2492: aload         28
    2494: invokeinterface #73,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2499: astore        29
    2501: aload         29
    2503: checkcast     #91                 // class java/lang/Boolean
    2506: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
    2509: istore        30
    2511: iconst_0
    2512: istore        31
    2514: iload         30
    2516: ifeq          2482
    2519: aload         26
    2521: aload         29
    2523: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    2528: pop
    2529: goto          2482
    2532: aload         26
    2534: checkcast     #97                 // class java/util/List
    2537: nop
    2538: checkcast     #119                // class java/util/Collection
    2541: invokeinterface #265,  1          // InterfaceMethod java/util/Collection.size:()I
    2546: nop
    2547: istore        32
    2549: iload         21
    2551: iload         32
    2553: iadd
    2554: istore        17
    2556: goto          2411
    2559: iload         17
    2561: nop
    2562: istore        37
    2564: iload         36
    2566: iload         37
    2568: iadd
    2569: istore        11
    2571: goto          2359
    2574: iload         11
    2576: istore        9
    2578: iload         7
    2580: iload         8
    2582: iadd
    2583: iload         9
    2585: iadd
    2586: ireturn

  public static final void showSlice(java.lang.Boolean[][][]);
    Code:
       0: aload_0
       1: ldc_w         #296                // String area
       4: invokestatic  #192                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: iconst_0
       8: istore_1
       9: iconst_m1
      10: istore_2
      11: nop
      12: aload_0
      13: iload_1
      14: aaload
      15: checkcast     #130                // class "[Ljava/lang/Object;"
      18: astore        4
      20: iconst_0
      21: istore        5
      23: aload         4
      25: astore        6
      27: new           #132                // class java/util/ArrayList
      30: dup
      31: aload         4
      33: arraylength
      34: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
      37: checkcast     #119                // class java/util/Collection
      40: astore        7
      42: iconst_0
      43: istore        8
      45: iconst_0
      46: istore        9
      48: aload         6
      50: arraylength
      51: istore        10
      53: iload         9
      55: iload         10
      57: if_icmpge     216
      60: aload         6
      62: iload         9
      64: aaload
      65: astore        11
      67: aload         7
      69: aload         11
      71: checkcast     #89                 // class "[Ljava/lang/Boolean;"
      74: astore        12
      76: astore        25
      78: iconst_0
      79: istore        13
      81: aload         12
      83: astore        14
      85: iconst_0
      86: istore        15
      88: aload         14
      90: astore        16
      92: new           #132                // class java/util/ArrayList
      95: dup
      96: aload         14
      98: arraylength
      99: invokespecial #135                // Method java/util/ArrayList."<init>":(I)V
     102: checkcast     #119                // class java/util/Collection
     105: astore        17
     107: iconst_0
     108: istore        18
     110: iconst_0
     111: istore        19
     113: aload         16
     115: arraylength
     116: istore        20
     118: iload         19
     120: iload         20
     122: if_icmpge     175
     125: aload         16
     127: iload         19
     129: aaload
     130: astore        21
     132: aload         17
     134: aload         21
     136: invokevirtual #128                // Method java/lang/Boolean.booleanValue:()Z
     139: istore        22
     141: astore        23
     143: iconst_0
     144: istore        24
     146: iload         22
     148: ifeq          157
     151: ldc_w         #298                // String _
     154: goto          160
     157: ldc_w         #300                // String #
     160: aload         23
     162: swap
     163: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     168: pop
     169: iinc          19, 1
     172: goto          118
     175: aload         17
     177: checkcast     #97                 // class java/util/List
     180: nop
     181: checkcast     #55                 // class java/lang/Iterable
     184: ldc_w         #302                // String
     187: checkcast     #304                // class java/lang/CharSequence
     190: aconst_null
     191: aconst_null
     192: iconst_0
     193: aconst_null
     194: aconst_null
     195: bipush        62
     197: aconst_null
     198: invokestatic  #308                // 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;
     201: aload         25
     203: swap
     204: invokeinterface #136,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     209: pop
     210: iinc          9, 1
     213: goto          53
     216: aload         7
     218: checkcast     #97                 // class java/util/List
     221: nop
     222: checkcast     #55                 // class java/lang/Iterable
     225: ldc_w         #310                // String \n
     228: checkcast     #304                // class java/lang/CharSequence
     231: aconst_null
     232: aconst_null
     233: iconst_0
     234: aconst_null
     235: aconst_null
     236: bipush        62
     238: aconst_null
     239: invokestatic  #308                // 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;
     242: astore_3
     243: aconst_null
     244: new           #312                // class java/lang/StringBuilder
     247: dup
     248: invokespecial #313                // Method java/lang/StringBuilder."<init>":()V
     251: iload_1
     252: invokevirtual #317                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     255: ldc_w         #319                // String  \n\n
     258: invokevirtual #322                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     261: aload_3
     262: invokevirtual #322                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     265: ldc_w         #324                // String \n\n Next Slice?
     268: invokevirtual #322                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     271: invokevirtual #328                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     274: invokestatic  #334                // Method javax/swing/JOptionPane.showConfirmDialog:(Ljava/awt/Component;Ljava/lang/Object;)I
     277: istore_2
     278: iload_2
     279: tableswitch   { // 0 to 2
                     0: 304
                     1: 314
                     2: 331
               default: 334
          }
     304: iload_1
     305: ifle          11
     308: iinc          1, -1
     311: goto          11
     314: iload_1
     315: aload_0
     316: checkcast     #130                // class "[Ljava/lang/Object;"
     319: invokestatic  #340                // Method kotlin/collections/ArraysKt.getLastIndex:([Ljava/lang/Object;)I
     322: if_icmpge     11
     325: iinc          1, 1
     328: goto          11
     331: goto          337
     334: goto          11
     337: return

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

  private static final kotlin.Unit main$lambda$0(java.util.List);
    Code:
       0: getstatic     #357                // Field Day18.Companion:LDay18$Companion;
       3: aload_0
       4: invokevirtual #362                // Method Day18$Companion.part1:(Ljava/util/List;)I
       7: istore_1
       8: getstatic     #368                // Field java/lang/System.out:Ljava/io/PrintStream;
      11: iload_1
      12: invokevirtual #373                // Method java/io/PrintStream.print:(I)V
      15: getstatic     #379                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      18: areturn

  private static final kotlin.Unit main$lambda$1(java.util.List);
    Code:
       0: getstatic     #357                // Field Day18.Companion:LDay18$Companion;
       3: aload_0
       4: invokevirtual #383                // Method Day18$Companion.part1Bitwise:(Ljava/util/List;)I
       7: istore_1
       8: getstatic     #368                // Field java/lang/System.out:Ljava/io/PrintStream;
      11: iload_1
      12: invokevirtual #373                // Method java/io/PrintStream.print:(I)V
      15: getstatic     #379                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      18: areturn

  private static final kotlin.Unit main$lambda$2(java.util.List);
    Code:
       0: getstatic     #357                // Field Day18.Companion:LDay18$Companion;
       3: aload_0
       4: invokevirtual #386                // Method Day18$Companion.part2:(Ljava/util/List;)I
       7: istore_1
       8: getstatic     #368                // Field java/lang/System.out:Ljava/io/PrintStream;
      11: iload_1
      12: invokevirtual #373                // Method java/io/PrintStream.print:(I)V
      15: getstatic     #379                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      18: areturn

  public static final java.util.List access$withoutBubbles(java.util.List);
    Code:
       0: aload_0
       1: invokestatic  #389                // Method withoutBubbles:(Ljava/util/List;)Ljava/util/List;
       4: areturn
}

Compiled from "Day18.kt"
public final class Day18$Companion {
  private Day18$Companion();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final int part1(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String input
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: astore_3
      11: iconst_0
      12: istore        4
      14: aload_3
      15: astore        5
      17: new           #26                 // class java/util/ArrayList
      20: dup
      21: aload_3
      22: bipush        10
      24: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      27: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
      30: checkcast     #37                 // class java/util/Collection
      33: astore        6
      35: iconst_0
      36: istore        7
      38: aload         5
      40: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      45: astore        8
      47: aload         8
      49: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      54: ifeq          223
      57: aload         8
      59: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      64: astore        9
      66: aload         6
      68: aload         9
      70: checkcast     #53                 // class java/lang/String
      73: astore        10
      75: astore        22
      77: iconst_0
      78: istore        11
      80: aload         10
      82: checkcast     #55                 // class java/lang/CharSequence
      85: iconst_1
      86: anewarray     #53                 // class java/lang/String
      89: astore        12
      91: aload         12
      93: iconst_0
      94: ldc           #57                 // String ,
      96: aastore
      97: aload         12
      99: iconst_0
     100: iconst_0
     101: bipush        6
     103: aconst_null
     104: invokestatic  #63                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     107: checkcast     #24                 // class java/lang/Iterable
     110: astore        12
     112: iconst_0
     113: istore        13
     115: aload         12
     117: astore        14
     119: new           #26                 // class java/util/ArrayList
     122: dup
     123: aload         12
     125: bipush        10
     127: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     130: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     133: checkcast     #37                 // class java/util/Collection
     136: astore        15
     138: iconst_0
     139: istore        16
     141: aload         14
     143: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     148: astore        17
     150: aload         17
     152: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     157: ifeq          204
     160: aload         17
     162: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     167: astore        18
     169: aload         15
     171: aload         18
     173: checkcast     #53                 // class java/lang/String
     176: astore        19
     178: astore        20
     180: iconst_0
     181: istore        21
     183: aload         19
     185: invokestatic  #69                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     188: nop
     189: invokestatic  #73                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     192: aload         20
     194: swap
     195: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     200: pop
     201: goto          150
     204: aload         15
     206: checkcast     #79                 // class java/util/List
     209: nop
     210: nop
     211: aload         22
     213: swap
     214: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     219: pop
     220: goto          47
     223: aload         6
     225: checkcast     #79                 // class java/util/List
     228: nop
     229: checkcast     #24                 // class java/lang/Iterable
     232: astore_3
     233: nop
     234: iconst_0
     235: istore        4
     237: aload_3
     238: astore        5
     240: new           #26                 // class java/util/ArrayList
     243: dup
     244: aload_3
     245: bipush        10
     247: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     250: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     253: checkcast     #37                 // class java/util/Collection
     256: astore        6
     258: iconst_0
     259: istore        7
     261: aload         5
     263: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     268: astore        8
     270: aload         8
     272: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     277: ifeq          376
     280: aload         8
     282: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     287: astore        9
     289: aload         6
     291: aload         9
     293: checkcast     #79                 // class java/util/List
     296: astore        10
     298: astore        22
     300: iconst_0
     301: istore        11
     303: aload         10
     305: iconst_0
     306: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     311: checkcast     #85                 // class java/lang/Number
     314: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     317: istore        12
     319: aload         10
     321: iconst_1
     322: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     327: checkcast     #85                 // class java/lang/Number
     330: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     333: istore        13
     335: aload         10
     337: iconst_2
     338: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     343: checkcast     #85                 // class java/lang/Number
     346: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     349: istore        14
     351: new           #91                 // class Position
     354: dup
     355: iload         12
     357: iload         13
     359: iload         14
     361: invokespecial #94                 // Method Position."<init>":(III)V
     364: aload         22
     366: swap
     367: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     372: pop
     373: goto          270
     376: aload         6
     378: checkcast     #79                 // class java/util/List
     381: nop
     382: astore_2
     383: aload_2
     384: invokestatic  #99                 // Method Day18Kt.getNumberOfSidesArrayImpl:(Ljava/util/List;)I
     387: ireturn

  public final int part1Bitwise(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String input
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: astore_3
      11: iconst_0
      12: istore        4
      14: aload_3
      15: astore        5
      17: new           #26                 // class java/util/ArrayList
      20: dup
      21: aload_3
      22: bipush        10
      24: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      27: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
      30: checkcast     #37                 // class java/util/Collection
      33: astore        6
      35: iconst_0
      36: istore        7
      38: aload         5
      40: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      45: astore        8
      47: aload         8
      49: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      54: ifeq          223
      57: aload         8
      59: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      64: astore        9
      66: aload         6
      68: aload         9
      70: checkcast     #53                 // class java/lang/String
      73: astore        10
      75: astore        22
      77: iconst_0
      78: istore        11
      80: aload         10
      82: checkcast     #55                 // class java/lang/CharSequence
      85: iconst_1
      86: anewarray     #53                 // class java/lang/String
      89: astore        12
      91: aload         12
      93: iconst_0
      94: ldc           #57                 // String ,
      96: aastore
      97: aload         12
      99: iconst_0
     100: iconst_0
     101: bipush        6
     103: aconst_null
     104: invokestatic  #63                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     107: checkcast     #24                 // class java/lang/Iterable
     110: astore        12
     112: iconst_0
     113: istore        13
     115: aload         12
     117: astore        14
     119: new           #26                 // class java/util/ArrayList
     122: dup
     123: aload         12
     125: bipush        10
     127: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     130: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     133: checkcast     #37                 // class java/util/Collection
     136: astore        15
     138: iconst_0
     139: istore        16
     141: aload         14
     143: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     148: astore        17
     150: aload         17
     152: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     157: ifeq          204
     160: aload         17
     162: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     167: astore        18
     169: aload         15
     171: aload         18
     173: checkcast     #53                 // class java/lang/String
     176: astore        19
     178: astore        20
     180: iconst_0
     181: istore        21
     183: aload         19
     185: invokestatic  #69                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     188: nop
     189: invokestatic  #73                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     192: aload         20
     194: swap
     195: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     200: pop
     201: goto          150
     204: aload         15
     206: checkcast     #79                 // class java/util/List
     209: nop
     210: nop
     211: aload         22
     213: swap
     214: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     219: pop
     220: goto          47
     223: aload         6
     225: checkcast     #79                 // class java/util/List
     228: nop
     229: checkcast     #24                 // class java/lang/Iterable
     232: astore_3
     233: nop
     234: iconst_0
     235: istore        4
     237: aload_3
     238: astore        5
     240: new           #26                 // class java/util/ArrayList
     243: dup
     244: aload_3
     245: bipush        10
     247: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     250: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     253: checkcast     #37                 // class java/util/Collection
     256: astore        6
     258: iconst_0
     259: istore        7
     261: aload         5
     263: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     268: astore        8
     270: aload         8
     272: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     277: ifeq          376
     280: aload         8
     282: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     287: astore        9
     289: aload         6
     291: aload         9
     293: checkcast     #79                 // class java/util/List
     296: astore        10
     298: astore        22
     300: iconst_0
     301: istore        11
     303: aload         10
     305: iconst_0
     306: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     311: checkcast     #85                 // class java/lang/Number
     314: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     317: istore        12
     319: aload         10
     321: iconst_1
     322: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     327: checkcast     #85                 // class java/lang/Number
     330: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     333: istore        13
     335: aload         10
     337: iconst_2
     338: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     343: checkcast     #85                 // class java/lang/Number
     346: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     349: istore        14
     351: new           #91                 // class Position
     354: dup
     355: iload         12
     357: iload         13
     359: iload         14
     361: invokespecial #94                 // Method Position."<init>":(III)V
     364: aload         22
     366: swap
     367: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     372: pop
     373: goto          270
     376: aload         6
     378: checkcast     #79                 // class java/util/List
     381: nop
     382: astore_2
     383: aload_2
     384: invokestatic  #123                // Method Day18Kt.getNumberOfSides:(Ljava/util/List;)I
     387: ireturn

  public final int part2(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String input
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: astore_3
      11: iconst_0
      12: istore        4
      14: aload_3
      15: astore        5
      17: new           #26                 // class java/util/ArrayList
      20: dup
      21: aload_3
      22: bipush        10
      24: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      27: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
      30: checkcast     #37                 // class java/util/Collection
      33: astore        6
      35: iconst_0
      36: istore        7
      38: aload         5
      40: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      45: astore        8
      47: aload         8
      49: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      54: ifeq          223
      57: aload         8
      59: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      64: astore        9
      66: aload         6
      68: aload         9
      70: checkcast     #53                 // class java/lang/String
      73: astore        10
      75: astore        22
      77: iconst_0
      78: istore        11
      80: aload         10
      82: checkcast     #55                 // class java/lang/CharSequence
      85: iconst_1
      86: anewarray     #53                 // class java/lang/String
      89: astore        12
      91: aload         12
      93: iconst_0
      94: ldc           #57                 // String ,
      96: aastore
      97: aload         12
      99: iconst_0
     100: iconst_0
     101: bipush        6
     103: aconst_null
     104: invokestatic  #63                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     107: checkcast     #24                 // class java/lang/Iterable
     110: astore        12
     112: iconst_0
     113: istore        13
     115: aload         12
     117: astore        14
     119: new           #26                 // class java/util/ArrayList
     122: dup
     123: aload         12
     125: bipush        10
     127: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     130: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     133: checkcast     #37                 // class java/util/Collection
     136: astore        15
     138: iconst_0
     139: istore        16
     141: aload         14
     143: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     148: astore        17
     150: aload         17
     152: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     157: ifeq          204
     160: aload         17
     162: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     167: astore        18
     169: aload         15
     171: aload         18
     173: checkcast     #53                 // class java/lang/String
     176: astore        19
     178: astore        20
     180: iconst_0
     181: istore        21
     183: aload         19
     185: invokestatic  #69                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     188: nop
     189: invokestatic  #73                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     192: aload         20
     194: swap
     195: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     200: pop
     201: goto          150
     204: aload         15
     206: checkcast     #79                 // class java/util/List
     209: nop
     210: nop
     211: aload         22
     213: swap
     214: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     219: pop
     220: goto          47
     223: aload         6
     225: checkcast     #79                 // class java/util/List
     228: nop
     229: checkcast     #24                 // class java/lang/Iterable
     232: astore_3
     233: nop
     234: iconst_0
     235: istore        4
     237: aload_3
     238: astore        5
     240: new           #26                 // class java/util/ArrayList
     243: dup
     244: aload_3
     245: bipush        10
     247: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     250: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     253: checkcast     #37                 // class java/util/Collection
     256: astore        6
     258: iconst_0
     259: istore        7
     261: aload         5
     263: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     268: astore        8
     270: aload         8
     272: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     277: ifeq          376
     280: aload         8
     282: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     287: astore        9
     289: aload         6
     291: aload         9
     293: checkcast     #79                 // class java/util/List
     296: astore        10
     298: astore        22
     300: iconst_0
     301: istore        11
     303: aload         10
     305: iconst_0
     306: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     311: checkcast     #85                 // class java/lang/Number
     314: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     317: istore        12
     319: aload         10
     321: iconst_1
     322: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     327: checkcast     #85                 // class java/lang/Number
     330: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     333: istore        13
     335: aload         10
     337: iconst_2
     338: invokeinterface #83,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     343: checkcast     #85                 // class java/lang/Number
     346: invokevirtual #89                 // Method java/lang/Number.intValue:()I
     349: istore        14
     351: new           #91                 // class Position
     354: dup
     355: iload         12
     357: iload         13
     359: iload         14
     361: invokespecial #94                 // Method Position."<init>":(III)V
     364: aload         22
     366: swap
     367: invokeinterface #77,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     372: pop
     373: goto          270
     376: aload         6
     378: checkcast     #79                 // class java/util/List
     381: nop
     382: astore_2
     383: aload_2
     384: invokestatic  #131                // Method Day18Kt.access$withoutBubbles:(Ljava/util/List;)Ljava/util/List;
     387: invokestatic  #123                // Method Day18Kt.getNumberOfSides:(Ljava/util/List;)I
     390: ireturn

  public Day18$Companion(kotlin.jvm.internal.DefaultConstructorMarker);
    Code:
       0: aload_0
       1: invokespecial #136                // Method "<init>":()V
       4: return
}