import java.io.File
import java.util.*

fun main(args: Array<String>) {
    day8part2()
}

fun day8part1() {
    val countArray = IntArray(8) { 0 }
    val input = File("day8input.txt").bufferedReader().readLines()
    input.map { line ->
        line.split(" | ").map { it.split(" ") }.let { it.first() to it.last() }
    }.map { entry ->
        entry.first.groupBy { it.length } to entry.second.groupBy { it.length }
    }.map { it.second }.forEach {
        it.forEach {
            countArray[it.key] += it.value.size
        }
    }
    val countMap = countArray.mapIndexed { index, i -> index to i }.toMap()
    println("Score: ${countMap[2]!!.plus(countMap[3]!!).plus(countMap[4]!!).plus(countMap[7]!!)}")
}

fun day8part2() {
    val countArray = IntArray(8) { 0 }
    val input = File("day8input.txt").bufferedReader().readLines()
    input.map { line ->
        line.split(" | ").map { it.split(" ") }.let { it.first().map { it.toSortedSet() } to it.last().map { it.toSortedSet() } }
    }.map {
        val map = predictPairs(it.first)
        Integer.parseInt(it.second.map { map[it] }.let { it.joinToString("") })
    }.also { println(it) }.also {
        println(it.sum())
    }
}

fun predictPairs(x: List<SortedSet<Char>>): MutableMap<SortedSet<Char>, Int> {
    val map = x.associateWith { -1 }.toMutableMap()
    map.forEach {
        when (it.key.size) {
            2 -> {
                map[it.key] = 1
            }
            3 -> {
                map[it.key] = 7
            }
            4 -> {
                map[it.key] = 4
            }
            7 -> {
                map[it.key] = 8
            }
            else -> {
            }
        }
    }
    map.filter { it.key.size == 6 }.forEach {
        if (it.key.containsAll(map.filterValues { it == 4 }.keys.first())) {
            map[it.key] = 9
        } else if (it.key.containsAll(map.filterValues { it == 1 }.keys.first())) {
            map[it.key] = 0
        } else {
            map[it.key] = 6
        }
    }
    map.filter { it.value == -1 }.forEach {
        if (it.key.containsAll(map.filterValues { it == 7 }.keys.first())) {
            map[it.key] = 3
        } else if (map.filterValues { it == 9 }.keys.first().containsAll(it.key)) {
            map[it.key] = 5
        } else {
            map[it.key] = 2
        }
    }
    return map
}

Compiled from "day8.kt"
public final class Day8Kt {
  public static final void main(java.lang.String[]);
    Code:
       0: aload_0
       1: ldc           #9                  // String args
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: invokestatic  #19                 // Method day8part2:()V
       9: return

  public static final void day8part1();
    Code:
       0: iconst_0
       1: istore_1
       2: bipush        8
       4: newarray       int
       6: astore_2
       7: iload_1
       8: bipush        8
      10: if_icmpge     25
      13: iload_1
      14: istore_3
      15: aload_2
      16: iload_3
      17: iconst_0
      18: iastore
      19: iinc          1, 1
      22: goto          7
      25: aload_2
      26: astore_0
      27: new           #23                 // class java/io/File
      30: dup
      31: ldc           #25                 // String day8input.txt
      33: invokespecial #29                 // Method java/io/File."<init>":(Ljava/lang/String;)V
      36: astore_2
      37: getstatic     #35                 // Field kotlin/text/Charsets.UTF_8:Ljava/nio/charset/Charset;
      40: astore_3
      41: sipush        8192
      44: istore        4
      46: aload_2
      47: astore        5
      49: new           #37                 // class java/io/InputStreamReader
      52: dup
      53: new           #39                 // class java/io/FileInputStream
      56: dup
      57: aload         5
      59: invokespecial #42                 // Method java/io/FileInputStream."<init>":(Ljava/io/File;)V
      62: checkcast     #44                 // class java/io/InputStream
      65: aload_3
      66: invokespecial #47                 // Method java/io/InputStreamReader."<init>":(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
      69: checkcast     #49                 // class java/io/Reader
      72: astore        5
      74: aload         5
      76: instanceof    #51                 // class java/io/BufferedReader
      79: ifeq          90
      82: aload         5
      84: checkcast     #51                 // class java/io/BufferedReader
      87: goto          101
      90: new           #51                 // class java/io/BufferedReader
      93: dup
      94: aload         5
      96: iload         4
      98: invokespecial #54                 // Method java/io/BufferedReader."<init>":(Ljava/io/Reader;I)V
     101: checkcast     #49                 // class java/io/Reader
     104: invokestatic  #60                 // Method kotlin/io/TextStreamsKt.readLines:(Ljava/io/Reader;)Ljava/util/List;
     107: astore_1
     108: aload_1
     109: checkcast     #62                 // class java/lang/Iterable
     112: astore_2
     113: iconst_0
     114: istore_3
     115: aload_2
     116: astore        4
     118: new           #64                 // class java/util/ArrayList
     121: dup
     122: aload_2
     123: bipush        10
     125: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     128: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     131: checkcast     #75                 // class java/util/Collection
     134: astore        5
     136: iconst_0
     137: istore        6
     139: aload         4
     141: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     146: astore        7
     148: aload         7
     150: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     155: ifeq          361
     158: aload         7
     160: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     165: astore        8
     167: aload         5
     169: aload         8
     171: checkcast     #91                 // class java/lang/String
     174: astore        9
     176: astore        26
     178: iconst_0
     179: istore        10
     181: aload         9
     183: checkcast     #93                 // class java/lang/CharSequence
     186: iconst_1
     187: anewarray     #91                 // class java/lang/String
     190: astore        11
     192: aload         11
     194: iconst_0
     195: ldc           #95                 // String  |
     197: aastore
     198: aload         11
     200: iconst_0
     201: iconst_0
     202: bipush        6
     204: aconst_null
     205: invokestatic  #101                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     208: checkcast     #62                 // class java/lang/Iterable
     211: astore        11
     213: iconst_0
     214: istore        12
     216: aload         11
     218: astore        13
     220: new           #64                 // class java/util/ArrayList
     223: dup
     224: aload         11
     226: bipush        10
     228: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     231: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     234: checkcast     #75                 // class java/util/Collection
     237: astore        14
     239: iconst_0
     240: istore        15
     242: aload         13
     244: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     249: astore        16
     251: aload         16
     253: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     258: ifeq          323
     261: aload         16
     263: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     268: astore        17
     270: aload         14
     272: aload         17
     274: checkcast     #91                 // class java/lang/String
     277: astore        18
     279: astore        19
     281: iconst_0
     282: istore        20
     284: aload         18
     286: checkcast     #93                 // class java/lang/CharSequence
     289: iconst_1
     290: anewarray     #91                 // class java/lang/String
     293: astore        21
     295: aload         21
     297: iconst_0
     298: ldc           #103                // String
     300: aastore
     301: aload         21
     303: iconst_0
     304: iconst_0
     305: bipush        6
     307: aconst_null
     308: invokestatic  #101                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     311: aload         19
     313: swap
     314: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     319: pop
     320: goto          251
     323: aload         14
     325: checkcast     #109                // class java/util/List
     328: nop
     329: astore        12
     331: iconst_0
     332: istore        13
     334: aload         12
     336: invokestatic  #113                // Method kotlin/collections/CollectionsKt.first:(Ljava/util/List;)Ljava/lang/Object;
     339: aload         12
     341: invokestatic  #116                // Method kotlin/collections/CollectionsKt.last:(Ljava/util/List;)Ljava/lang/Object;
     344: invokestatic  #122                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     347: nop
     348: nop
     349: aload         26
     351: swap
     352: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     357: pop
     358: goto          148
     361: aload         5
     363: checkcast     #109                // class java/util/List
     366: nop
     367: checkcast     #62                 // class java/lang/Iterable
     370: astore_2
     371: nop
     372: iconst_0
     373: istore_3
     374: aload_2
     375: astore        4
     377: new           #64                 // class java/util/ArrayList
     380: dup
     381: aload_2
     382: bipush        10
     384: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     387: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     390: checkcast     #75                 // class java/util/Collection
     393: astore        5
     395: iconst_0
     396: istore        6
     398: aload         4
     400: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     405: astore        7
     407: aload         7
     409: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     414: ifeq          778
     417: aload         7
     419: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     424: astore        8
     426: aload         5
     428: aload         8
     430: checkcast     #124                // class kotlin/Pair
     433: astore        9
     435: astore        26
     437: iconst_0
     438: istore        10
     440: aload         9
     442: invokevirtual #127                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     445: checkcast     #62                 // class java/lang/Iterable
     448: astore        11
     450: iconst_0
     451: istore        12
     453: aload         11
     455: astore        13
     457: new           #129                // class java/util/LinkedHashMap
     460: dup
     461: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
     464: checkcast     #133                // class java/util/Map
     467: astore        14
     469: iconst_0
     470: istore        15
     472: aload         13
     474: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     479: astore        16
     481: aload         16
     483: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     488: ifeq          596
     491: aload         16
     493: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     498: astore        17
     500: aload         17
     502: checkcast     #91                 // class java/lang/String
     505: astore        18
     507: iconst_0
     508: istore        19
     510: aload         18
     512: invokevirtual #137                // Method java/lang/String.length:()I
     515: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     518: astore        20
     520: aload         14
     522: astore        21
     524: iconst_0
     525: istore        22
     527: aload         21
     529: aload         20
     531: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     536: astore        23
     538: aload         23
     540: ifnonnull     575
     543: iconst_0
     544: istore        24
     546: new           #64                 // class java/util/ArrayList
     549: dup
     550: invokespecial #148                // Method java/util/ArrayList."<init>":()V
     553: checkcast     #109                // class java/util/List
     556: astore        24
     558: aload         21
     560: aload         20
     562: aload         24
     564: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     569: pop
     570: aload         24
     572: goto          577
     575: aload         23
     577: nop
     578: checkcast     #109                // class java/util/List
     581: astore        18
     583: aload         18
     585: aload         17
     587: invokeinterface #153,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     592: pop
     593: goto          481
     596: aload         14
     598: nop
     599: aload         9
     601: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     604: checkcast     #62                 // class java/lang/Iterable
     607: astore        11
     609: astore        25
     611: iconst_0
     612: istore        12
     614: aload         11
     616: astore        13
     618: new           #129                // class java/util/LinkedHashMap
     621: dup
     622: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
     625: checkcast     #133                // class java/util/Map
     628: astore        14
     630: iconst_0
     631: istore        15
     633: aload         13
     635: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     640: astore        16
     642: aload         16
     644: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     649: ifeq          757
     652: aload         16
     654: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     659: astore        17
     661: aload         17
     663: checkcast     #91                 // class java/lang/String
     666: astore        18
     668: iconst_0
     669: istore        19
     671: aload         18
     673: invokevirtual #137                // Method java/lang/String.length:()I
     676: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     679: astore        20
     681: aload         14
     683: astore        21
     685: iconst_0
     686: istore        22
     688: aload         21
     690: aload         20
     692: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     697: astore        23
     699: aload         23
     701: ifnonnull     736
     704: iconst_0
     705: istore        24
     707: new           #64                 // class java/util/ArrayList
     710: dup
     711: invokespecial #148                // Method java/util/ArrayList."<init>":()V
     714: checkcast     #109                // class java/util/List
     717: astore        24
     719: aload         21
     721: aload         20
     723: aload         24
     725: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     730: pop
     731: aload         24
     733: goto          738
     736: aload         23
     738: nop
     739: checkcast     #109                // class java/util/List
     742: astore        18
     744: aload         18
     746: aload         17
     748: invokeinterface #153,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     753: pop
     754: goto          642
     757: aload         14
     759: nop
     760: aload         25
     762: swap
     763: invokestatic  #122                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     766: aload         26
     768: swap
     769: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     774: pop
     775: goto          407
     778: aload         5
     780: checkcast     #109                // class java/util/List
     783: nop
     784: checkcast     #62                 // class java/lang/Iterable
     787: astore_2
     788: nop
     789: iconst_0
     790: istore_3
     791: aload_2
     792: astore        4
     794: new           #64                 // class java/util/ArrayList
     797: dup
     798: aload_2
     799: bipush        10
     801: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     804: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     807: checkcast     #75                 // class java/util/Collection
     810: astore        5
     812: iconst_0
     813: istore        6
     815: aload         4
     817: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     822: astore        7
     824: aload         7
     826: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     831: ifeq          877
     834: aload         7
     836: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     841: astore        8
     843: aload         5
     845: aload         8
     847: checkcast     #124                // class kotlin/Pair
     850: astore        9
     852: astore        26
     854: iconst_0
     855: istore        10
     857: aload         9
     859: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     862: checkcast     #133                // class java/util/Map
     865: aload         26
     867: swap
     868: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     873: pop
     874: goto          824
     877: aload         5
     879: checkcast     #109                // class java/util/List
     882: nop
     883: checkcast     #62                 // class java/lang/Iterable
     886: astore_2
     887: nop
     888: iconst_0
     889: istore_3
     890: aload_2
     891: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     896: astore        4
     898: aload         4
     900: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     905: ifeq          1027
     908: aload         4
     910: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     915: astore        5
     917: aload         5
     919: checkcast     #133                // class java/util/Map
     922: astore        6
     924: iconst_0
     925: istore        7
     927: aload         6
     929: astore        8
     931: iconst_0
     932: istore        9
     934: aload         8
     936: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     941: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     946: astore        10
     948: aload         10
     950: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     955: ifeq          1021
     958: aload         10
     960: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     965: checkcast     #165                // class java/util/Map$Entry
     968: astore        11
     970: aload         11
     972: astore        12
     974: iconst_0
     975: istore        13
     977: aload         12
     979: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     984: checkcast     #170                // class java/lang/Number
     987: invokevirtual #173                // Method java/lang/Number.intValue:()I
     990: istore        14
     992: aload_0
     993: iload         14
     995: aload_0
     996: iload         14
     998: iaload
     999: aload         12
    1001: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
    1006: checkcast     #109                // class java/util/List
    1009: invokeinterface #179,  1          // InterfaceMethod java/util/List.size:()I
    1014: iadd
    1015: iastore
    1016: nop
    1017: nop
    1018: goto          948
    1021: nop
    1022: nop
    1023: nop
    1024: goto          898
    1027: nop
    1028: aload_0
    1029: astore_3
    1030: iconst_0
    1031: istore        4
    1033: aload_3
    1034: astore        5
    1036: new           #64                 // class java/util/ArrayList
    1039: dup
    1040: aload_3
    1041: arraylength
    1042: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
    1045: checkcast     #75                 // class java/util/Collection
    1048: astore        6
    1050: iconst_0
    1051: istore        7
    1053: iconst_0
    1054: istore        8
    1056: iconst_0
    1057: istore        9
    1059: aload         5
    1061: arraylength
    1062: istore        10
    1064: iload         9
    1066: iload         10
    1068: if_icmpge     1124
    1071: aload         5
    1073: iload         9
    1075: iaload
    1076: istore        11
    1078: aload         6
    1080: iload         8
    1082: iinc          8, 1
    1085: iload         11
    1087: istore        12
    1089: istore        13
    1091: astore        26
    1093: iconst_0
    1094: istore        14
    1096: iload         13
    1098: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1101: iload         12
    1103: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1106: invokestatic  #122                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
    1109: aload         26
    1111: swap
    1112: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1117: pop
    1118: iinc          9, 1
    1121: goto          1064
    1124: aload         6
    1126: checkcast     #109                // class java/util/List
    1129: nop
    1130: checkcast     #62                 // class java/lang/Iterable
    1133: invokestatic  #185                // Method kotlin/collections/MapsKt.toMap:(Ljava/lang/Iterable;)Ljava/util/Map;
    1136: astore_2
    1137: new           #187                // class java/lang/StringBuilder
    1140: dup
    1141: invokespecial #188                // Method java/lang/StringBuilder."<init>":()V
    1144: ldc           #190                // String Score:
    1146: invokevirtual #194                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
    1149: aload_2
    1150: iconst_2
    1151: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1154: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
    1159: dup
    1160: invokestatic  #198                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1163: checkcast     #170                // class java/lang/Number
    1166: invokevirtual #173                // Method java/lang/Number.intValue:()I
    1169: aload_2
    1170: iconst_3
    1171: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1174: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
    1179: dup
    1180: invokestatic  #198                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1183: checkcast     #170                // class java/lang/Number
    1186: invokevirtual #173                // Method java/lang/Number.intValue:()I
    1189: iadd
    1190: aload_2
    1191: iconst_4
    1192: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1195: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
    1200: dup
    1201: invokestatic  #198                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1204: checkcast     #170                // class java/lang/Number
    1207: invokevirtual #173                // Method java/lang/Number.intValue:()I
    1210: iadd
    1211: aload_2
    1212: bipush        7
    1214: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1217: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
    1222: dup
    1223: invokestatic  #198                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1226: checkcast     #170                // class java/lang/Number
    1229: invokevirtual #173                // Method java/lang/Number.intValue:()I
    1232: iadd
    1233: invokevirtual #201                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
    1236: invokevirtual #205                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
    1239: getstatic     #211                // Field java/lang/System.out:Ljava/io/PrintStream;
    1242: swap
    1243: invokevirtual #216                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
    1246: return

  public static final void day8part2();
    Code:
       0: iconst_0
       1: istore_1
       2: bipush        8
       4: newarray       int
       6: astore_2
       7: iload_1
       8: bipush        8
      10: if_icmpge     25
      13: iload_1
      14: istore_3
      15: aload_2
      16: iload_3
      17: iconst_0
      18: iastore
      19: iinc          1, 1
      22: goto          7
      25: aload_2
      26: astore_0
      27: new           #23                 // class java/io/File
      30: dup
      31: ldc           #25                 // String day8input.txt
      33: invokespecial #29                 // Method java/io/File."<init>":(Ljava/lang/String;)V
      36: astore_2
      37: getstatic     #35                 // Field kotlin/text/Charsets.UTF_8:Ljava/nio/charset/Charset;
      40: astore_3
      41: sipush        8192
      44: istore        4
      46: aload_2
      47: astore        5
      49: new           #37                 // class java/io/InputStreamReader
      52: dup
      53: new           #39                 // class java/io/FileInputStream
      56: dup
      57: aload         5
      59: invokespecial #42                 // Method java/io/FileInputStream."<init>":(Ljava/io/File;)V
      62: checkcast     #44                 // class java/io/InputStream
      65: aload_3
      66: invokespecial #47                 // Method java/io/InputStreamReader."<init>":(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
      69: checkcast     #49                 // class java/io/Reader
      72: astore        5
      74: aload         5
      76: instanceof    #51                 // class java/io/BufferedReader
      79: ifeq          90
      82: aload         5
      84: checkcast     #51                 // class java/io/BufferedReader
      87: goto          101
      90: new           #51                 // class java/io/BufferedReader
      93: dup
      94: aload         5
      96: iload         4
      98: invokespecial #54                 // Method java/io/BufferedReader."<init>":(Ljava/io/Reader;I)V
     101: checkcast     #49                 // class java/io/Reader
     104: invokestatic  #60                 // Method kotlin/io/TextStreamsKt.readLines:(Ljava/io/Reader;)Ljava/util/List;
     107: astore_1
     108: aload_1
     109: checkcast     #62                 // class java/lang/Iterable
     112: astore_2
     113: iconst_0
     114: istore_3
     115: aload_2
     116: astore        4
     118: new           #64                 // class java/util/ArrayList
     121: dup
     122: aload_2
     123: bipush        10
     125: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     128: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     131: checkcast     #75                 // class java/util/Collection
     134: astore        5
     136: iconst_0
     137: istore        6
     139: aload         4
     141: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     146: astore        7
     148: aload         7
     150: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     155: ifeq          570
     158: aload         7
     160: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     165: astore        8
     167: aload         5
     169: aload         8
     171: checkcast     #91                 // class java/lang/String
     174: astore        9
     176: astore        26
     178: iconst_0
     179: istore        10
     181: aload         9
     183: checkcast     #93                 // class java/lang/CharSequence
     186: iconst_1
     187: anewarray     #91                 // class java/lang/String
     190: astore        11
     192: aload         11
     194: iconst_0
     195: ldc           #95                 // String  |
     197: aastore
     198: aload         11
     200: iconst_0
     201: iconst_0
     202: bipush        6
     204: aconst_null
     205: invokestatic  #101                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     208: checkcast     #62                 // class java/lang/Iterable
     211: astore        11
     213: iconst_0
     214: istore        12
     216: aload         11
     218: astore        13
     220: new           #64                 // class java/util/ArrayList
     223: dup
     224: aload         11
     226: bipush        10
     228: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     231: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     234: checkcast     #75                 // class java/util/Collection
     237: astore        14
     239: iconst_0
     240: istore        15
     242: aload         13
     244: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     249: astore        16
     251: aload         16
     253: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     258: ifeq          323
     261: aload         16
     263: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     268: astore        17
     270: aload         14
     272: aload         17
     274: checkcast     #91                 // class java/lang/String
     277: astore        18
     279: astore        19
     281: iconst_0
     282: istore        20
     284: aload         18
     286: checkcast     #93                 // class java/lang/CharSequence
     289: iconst_1
     290: anewarray     #91                 // class java/lang/String
     293: astore        21
     295: aload         21
     297: iconst_0
     298: ldc           #103                // String
     300: aastore
     301: aload         21
     303: iconst_0
     304: iconst_0
     305: bipush        6
     307: aconst_null
     308: invokestatic  #101                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     311: aload         19
     313: swap
     314: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     319: pop
     320: goto          251
     323: aload         14
     325: checkcast     #109                // class java/util/List
     328: nop
     329: astore        12
     331: iconst_0
     332: istore        13
     334: aload         12
     336: invokestatic  #113                // Method kotlin/collections/CollectionsKt.first:(Ljava/util/List;)Ljava/lang/Object;
     339: checkcast     #62                 // class java/lang/Iterable
     342: astore        14
     344: iconst_0
     345: istore        15
     347: aload         14
     349: astore        16
     351: new           #64                 // class java/util/ArrayList
     354: dup
     355: aload         14
     357: bipush        10
     359: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     362: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     365: checkcast     #75                 // class java/util/Collection
     368: astore        17
     370: iconst_0
     371: istore        18
     373: aload         16
     375: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     380: astore        20
     382: aload         20
     384: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     389: ifeq          435
     392: aload         20
     394: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     399: astore        21
     401: aload         17
     403: aload         21
     405: checkcast     #91                 // class java/lang/String
     408: astore        22
     410: astore        23
     412: iconst_0
     413: istore        24
     415: aload         22
     417: checkcast     #93                 // class java/lang/CharSequence
     420: invokestatic  #277                // Method kotlin/text/StringsKt.toSortedSet:(Ljava/lang/CharSequence;)Ljava/util/SortedSet;
     423: aload         23
     425: swap
     426: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     431: pop
     432: goto          382
     435: aload         17
     437: checkcast     #109                // class java/util/List
     440: nop
     441: aload         12
     443: invokestatic  #116                // Method kotlin/collections/CollectionsKt.last:(Ljava/util/List;)Ljava/lang/Object;
     446: checkcast     #62                 // class java/lang/Iterable
     449: astore        14
     451: astore        23
     453: iconst_0
     454: istore        15
     456: aload         14
     458: astore        16
     460: new           #64                 // class java/util/ArrayList
     463: dup
     464: aload         14
     466: bipush        10
     468: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     471: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     474: checkcast     #75                 // class java/util/Collection
     477: astore        17
     479: iconst_0
     480: istore        18
     482: aload         16
     484: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     489: astore        20
     491: aload         20
     493: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     498: ifeq          544
     501: aload         20
     503: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     508: astore        21
     510: aload         17
     512: aload         21
     514: checkcast     #91                 // class java/lang/String
     517: astore        22
     519: astore        25
     521: iconst_0
     522: istore        24
     524: aload         22
     526: checkcast     #93                 // class java/lang/CharSequence
     529: invokestatic  #277                // Method kotlin/text/StringsKt.toSortedSet:(Ljava/lang/CharSequence;)Ljava/util/SortedSet;
     532: aload         25
     534: swap
     535: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     540: pop
     541: goto          491
     544: aload         17
     546: checkcast     #109                // class java/util/List
     549: nop
     550: aload         23
     552: swap
     553: invokestatic  #122                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     556: nop
     557: nop
     558: aload         26
     560: swap
     561: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     566: pop
     567: goto          148
     570: aload         5
     572: checkcast     #109                // class java/util/List
     575: nop
     576: checkcast     #62                 // class java/lang/Iterable
     579: astore_2
     580: nop
     581: iconst_0
     582: istore_3
     583: aload_2
     584: astore        4
     586: new           #64                 // class java/util/ArrayList
     589: dup
     590: aload_2
     591: bipush        10
     593: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     596: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     599: checkcast     #75                 // class java/util/Collection
     602: astore        5
     604: iconst_0
     605: istore        6
     607: aload         4
     609: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     614: astore        7
     616: aload         7
     618: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     623: ifeq          819
     626: aload         7
     628: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     633: astore        8
     635: aload         5
     637: aload         8
     639: checkcast     #124                // class kotlin/Pair
     642: astore        9
     644: astore        26
     646: iconst_0
     647: istore        10
     649: aload         9
     651: invokevirtual #127                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     654: checkcast     #109                // class java/util/List
     657: invokestatic  #281                // Method predictPairs:(Ljava/util/List;)Ljava/util/Map;
     660: astore        11
     662: aload         9
     664: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     667: checkcast     #62                 // class java/lang/Iterable
     670: astore        12
     672: iconst_0
     673: istore        13
     675: aload         12
     677: astore        14
     679: new           #64                 // class java/util/ArrayList
     682: dup
     683: aload         12
     685: bipush        10
     687: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     690: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     693: checkcast     #75                 // class java/util/Collection
     696: astore        15
     698: iconst_0
     699: istore        16
     701: aload         14
     703: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     708: astore        17
     710: aload         17
     712: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     717: ifeq          767
     720: aload         17
     722: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     727: astore        18
     729: aload         15
     731: aload         18
     733: checkcast     #283                // class java/util/SortedSet
     736: astore        19
     738: astore        20
     740: iconst_0
     741: istore        21
     743: aload         11
     745: aload         19
     747: invokeinterface #147,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     752: checkcast     #139                // class java/lang/Integer
     755: aload         20
     757: swap
     758: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     763: pop
     764: goto          710
     767: aload         15
     769: checkcast     #109                // class java/util/List
     772: nop
     773: astore        13
     775: iconst_0
     776: istore        14
     778: aload         13
     780: checkcast     #62                 // class java/lang/Iterable
     783: ldc_w         #285                // String
     786: checkcast     #93                 // class java/lang/CharSequence
     789: aconst_null
     790: aconst_null
     791: iconst_0
     792: aconst_null
     793: aconst_null
     794: bipush        62
     796: aconst_null
     797: invokestatic  #289                // 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;
     800: nop
     801: invokestatic  #293                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     804: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     807: aload         26
     809: swap
     810: invokeinterface #107,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     815: pop
     816: goto          616
     819: aload         5
     821: checkcast     #109                // class java/util/List
     824: nop
     825: astore_2
     826: aload_2
     827: astore_3
     828: iconst_0
     829: istore        4
     831: getstatic     #211                // Field java/lang/System.out:Ljava/io/PrintStream;
     834: aload_3
     835: invokevirtual #216                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     838: nop
     839: aload_2
     840: astore_2
     841: aload_2
     842: astore_3
     843: iconst_0
     844: istore        4
     846: aload_3
     847: checkcast     #62                 // class java/lang/Iterable
     850: invokestatic  #297                // Method kotlin/collections/CollectionsKt.sumOfInt:(Ljava/lang/Iterable;)I
     853: istore        5
     855: getstatic     #211                // Field java/lang/System.out:Ljava/io/PrintStream;
     858: iload         5
     860: invokevirtual #299                // Method java/io/PrintStream.println:(I)V
     863: nop
     864: nop
     865: return

  public static final java.util.Map<java.util.SortedSet<java.lang.Character>, java.lang.Integer> predictPairs(java.util.List<? extends java.util.SortedSet<java.lang.Character>>);
    Code:
       0: aload_0
       1: ldc_w         #314                // String x
       4: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: aload_0
       8: checkcast     #62                 // class java/lang/Iterable
      11: astore_2
      12: iconst_0
      13: istore_3
      14: new           #129                // class java/util/LinkedHashMap
      17: dup
      18: aload_2
      19: bipush        10
      21: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      24: invokestatic  #318                // Method kotlin/collections/MapsKt.mapCapacity:(I)I
      27: bipush        16
      29: invokestatic  #324                // Method kotlin/ranges/RangesKt.coerceAtLeast:(II)I
      32: invokespecial #325                // Method java/util/LinkedHashMap."<init>":(I)V
      35: astore        4
      37: aload_2
      38: astore        5
      40: iconst_0
      41: istore        6
      43: aload         5
      45: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      50: astore        7
      52: aload         7
      54: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      59: ifeq          113
      62: aload         7
      64: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      69: astore        8
      71: aload         4
      73: checkcast     #133                // class java/util/Map
      76: aload         8
      78: aload         8
      80: checkcast     #283                // class java/util/SortedSet
      83: astore        9
      85: astore        17
      87: astore        16
      89: iconst_0
      90: istore        10
      92: iconst_m1
      93: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      96: astore        18
      98: aload         16
     100: aload         17
     102: aload         18
     104: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     109: pop
     110: goto          52
     113: aload         4
     115: checkcast     #133                // class java/util/Map
     118: nop
     119: invokestatic  #329                // Method kotlin/collections/MapsKt.toMutableMap:(Ljava/util/Map;)Ljava/util/Map;
     122: astore_1
     123: aload_1
     124: astore_2
     125: iconst_0
     126: istore_3
     127: aload_2
     128: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     133: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     138: astore        4
     140: aload         4
     142: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     147: ifeq          312
     150: aload         4
     152: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     157: checkcast     #165                // class java/util/Map$Entry
     160: astore        5
     162: aload         5
     164: astore        6
     166: iconst_0
     167: istore        7
     169: aload         6
     171: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     176: checkcast     #283                // class java/util/SortedSet
     179: invokeinterface #330,  1          // InterfaceMethod java/util/SortedSet.size:()I
     184: tableswitch   { // 2 to 7
                     2: 224
                     3: 245
                     4: 267
                     5: 307
                     6: 307
                     7: 288
               default: 307
          }
     224: aload_1
     225: aload         6
     227: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     232: iconst_1
     233: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     236: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     241: pop
     242: goto          307
     245: aload_1
     246: aload         6
     248: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     253: bipush        7
     255: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     258: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     263: pop
     264: goto          307
     267: aload_1
     268: aload         6
     270: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     275: iconst_4
     276: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     279: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     284: pop
     285: goto          307
     288: aload_1
     289: aload         6
     291: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     296: bipush        8
     298: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     301: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     306: pop
     307: nop
     308: nop
     309: goto          140
     312: nop
     313: aload_1
     314: astore_2
     315: iconst_0
     316: istore_3
     317: aload_2
     318: astore        4
     320: new           #129                // class java/util/LinkedHashMap
     323: dup
     324: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
     327: checkcast     #133                // class java/util/Map
     330: astore        5
     332: iconst_0
     333: istore        6
     335: aload         4
     337: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     342: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     347: astore        7
     349: aload         7
     351: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     356: ifeq          431
     359: aload         7
     361: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     366: checkcast     #165                // class java/util/Map$Entry
     369: astore        8
     371: aload         8
     373: astore        9
     375: iconst_0
     376: istore        10
     378: aload         9
     380: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     385: checkcast     #283                // class java/util/SortedSet
     388: invokeinterface #330,  1          // InterfaceMethod java/util/SortedSet.size:()I
     393: bipush        6
     395: if_icmpne     402
     398: iconst_1
     399: goto          403
     402: iconst_0
     403: ifeq          349
     406: aload         5
     408: aload         8
     410: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     415: aload         8
     417: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     422: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     427: pop
     428: goto          349
     431: aload         5
     433: nop
     434: astore_2
     435: nop
     436: iconst_0
     437: istore_3
     438: aload_2
     439: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     444: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     449: astore        4
     451: aload         4
     453: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     458: ifeq          843
     461: aload         4
     463: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     468: checkcast     #165                // class java/util/Map$Entry
     471: astore        5
     473: aload         5
     475: astore        6
     477: iconst_0
     478: istore        7
     480: aload         6
     482: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     487: checkcast     #283                // class java/util/SortedSet
     490: aload_1
     491: astore        8
     493: astore        9
     495: iconst_0
     496: istore        10
     498: new           #129                // class java/util/LinkedHashMap
     501: dup
     502: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
     505: astore        11
     507: aload         8
     509: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     514: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     519: astore        12
     521: aload         12
     523: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     528: ifeq          598
     531: aload         12
     533: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     538: checkcast     #165                // class java/util/Map$Entry
     541: astore        13
     543: aload         13
     545: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     550: checkcast     #170                // class java/lang/Number
     553: invokevirtual #173                // Method java/lang/Number.intValue:()I
     556: istore        14
     558: iconst_0
     559: istore        15
     561: iload         14
     563: iconst_4
     564: if_icmpne     571
     567: iconst_1
     568: goto          572
     571: iconst_0
     572: ifeq          521
     575: aload         11
     577: aload         13
     579: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     584: aload         13
     586: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     591: invokevirtual #331                // Method java/util/LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     594: pop
     595: goto          521
     598: aload         11
     600: checkcast     #133                // class java/util/Map
     603: aload         9
     605: swap
     606: invokeinterface #334,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;
     611: checkcast     #62                 // class java/lang/Iterable
     614: invokestatic  #337                // Method kotlin/collections/CollectionsKt.first:(Ljava/lang/Iterable;)Ljava/lang/Object;
     617: checkcast     #75                 // class java/util/Collection
     620: invokeinterface #341,  2          // InterfaceMethod java/util/SortedSet.containsAll:(Ljava/util/Collection;)Z
     625: ifeq          650
     628: aload_1
     629: aload         6
     631: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     636: bipush        9
     638: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     641: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     646: pop
     647: goto          838
     650: aload         6
     652: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     657: checkcast     #283                // class java/util/SortedSet
     660: aload_1
     661: astore        8
     663: astore        9
     665: iconst_0
     666: istore        10
     668: new           #129                // class java/util/LinkedHashMap
     671: dup
     672: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
     675: astore        11
     677: aload         8
     679: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     684: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     689: astore        12
     691: aload         12
     693: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     698: ifeq          768
     701: aload         12
     703: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     708: checkcast     #165                // class java/util/Map$Entry
     711: astore        13
     713: aload         13
     715: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     720: checkcast     #170                // class java/lang/Number
     723: invokevirtual #173                // Method java/lang/Number.intValue:()I
     726: istore        14
     728: iconst_0
     729: istore        15
     731: iload         14
     733: iconst_1
     734: if_icmpne     741
     737: iconst_1
     738: goto          742
     741: iconst_0
     742: ifeq          691
     745: aload         11
     747: aload         13
     749: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     754: aload         13
     756: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     761: invokevirtual #331                // Method java/util/LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     764: pop
     765: goto          691
     768: aload         11
     770: checkcast     #133                // class java/util/Map
     773: aload         9
     775: swap
     776: invokeinterface #334,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;
     781: checkcast     #62                 // class java/lang/Iterable
     784: invokestatic  #337                // Method kotlin/collections/CollectionsKt.first:(Ljava/lang/Iterable;)Ljava/lang/Object;
     787: checkcast     #75                 // class java/util/Collection
     790: invokeinterface #341,  2          // InterfaceMethod java/util/SortedSet.containsAll:(Ljava/util/Collection;)Z
     795: ifeq          819
     798: aload_1
     799: aload         6
     801: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     806: iconst_0
     807: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     810: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     815: pop
     816: goto          838
     819: aload_1
     820: aload         6
     822: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     827: bipush        6
     829: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     832: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     837: pop
     838: nop
     839: nop
     840: goto          451
     843: nop
     844: aload_1
     845: astore_2
     846: iconst_0
     847: istore_3
     848: aload_2
     849: astore        4
     851: new           #129                // class java/util/LinkedHashMap
     854: dup
     855: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
     858: checkcast     #133                // class java/util/Map
     861: astore        5
     863: iconst_0
     864: istore        6
     866: aload         4
     868: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     873: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     878: astore        7
     880: aload         7
     882: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     887: ifeq          959
     890: aload         7
     892: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     897: checkcast     #165                // class java/util/Map$Entry
     900: astore        8
     902: aload         8
     904: astore        9
     906: iconst_0
     907: istore        10
     909: aload         9
     911: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     916: checkcast     #170                // class java/lang/Number
     919: invokevirtual #173                // Method java/lang/Number.intValue:()I
     922: iconst_m1
     923: if_icmpne     930
     926: iconst_1
     927: goto          931
     930: iconst_0
     931: ifeq          880
     934: aload         5
     936: aload         8
     938: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     943: aload         8
     945: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     950: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     955: pop
     956: goto          880
     959: aload         5
     961: nop
     962: astore_2
     963: nop
     964: iconst_0
     965: istore_3
     966: aload_2
     967: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     972: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
     977: astore        4
     979: aload         4
     981: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     986: ifeq          1366
     989: aload         4
     991: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     996: checkcast     #165                // class java/util/Map$Entry
     999: astore        5
    1001: aload         5
    1003: astore        6
    1005: iconst_0
    1006: istore        7
    1008: aload         6
    1010: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1015: checkcast     #283                // class java/util/SortedSet
    1018: aload_1
    1019: astore        8
    1021: astore        9
    1023: iconst_0
    1024: istore        10
    1026: new           #129                // class java/util/LinkedHashMap
    1029: dup
    1030: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
    1033: astore        11
    1035: aload         8
    1037: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
    1042: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
    1047: astore        12
    1049: aload         12
    1051: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1056: ifeq          1127
    1059: aload         12
    1061: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1066: checkcast     #165                // class java/util/Map$Entry
    1069: astore        13
    1071: aload         13
    1073: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
    1078: checkcast     #170                // class java/lang/Number
    1081: invokevirtual #173                // Method java/lang/Number.intValue:()I
    1084: istore        14
    1086: iconst_0
    1087: istore        15
    1089: iload         14
    1091: bipush        7
    1093: if_icmpne     1100
    1096: iconst_1
    1097: goto          1101
    1100: iconst_0
    1101: ifeq          1049
    1104: aload         11
    1106: aload         13
    1108: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1113: aload         13
    1115: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
    1120: invokevirtual #331                // Method java/util/LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1123: pop
    1124: goto          1049
    1127: aload         11
    1129: checkcast     #133                // class java/util/Map
    1132: aload         9
    1134: swap
    1135: invokeinterface #334,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;
    1140: checkcast     #62                 // class java/lang/Iterable
    1143: invokestatic  #337                // Method kotlin/collections/CollectionsKt.first:(Ljava/lang/Iterable;)Ljava/lang/Object;
    1146: checkcast     #75                 // class java/util/Collection
    1149: invokeinterface #341,  2          // InterfaceMethod java/util/SortedSet.containsAll:(Ljava/util/Collection;)Z
    1154: ifeq          1178
    1157: aload_1
    1158: aload         6
    1160: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1165: iconst_3
    1166: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1169: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1174: pop
    1175: goto          1361
    1178: aload_1
    1179: astore        8
    1181: iconst_0
    1182: istore        10
    1184: new           #129                // class java/util/LinkedHashMap
    1187: dup
    1188: invokespecial #131                // Method java/util/LinkedHashMap."<init>":()V
    1191: astore        11
    1193: aload         8
    1195: invokeinterface #160,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
    1200: invokeinterface #163,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;
    1205: astore        12
    1207: aload         12
    1209: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1214: ifeq          1285
    1217: aload         12
    1219: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1224: checkcast     #165                // class java/util/Map$Entry
    1227: astore        13
    1229: aload         13
    1231: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
    1236: checkcast     #170                // class java/lang/Number
    1239: invokevirtual #173                // Method java/lang/Number.intValue:()I
    1242: istore        14
    1244: iconst_0
    1245: istore        15
    1247: iload         14
    1249: bipush        9
    1251: if_icmpne     1258
    1254: iconst_1
    1255: goto          1259
    1258: iconst_0
    1259: ifeq          1207
    1262: aload         11
    1264: aload         13
    1266: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1271: aload         13
    1273: invokeinterface #176,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
    1278: invokevirtual #331                // Method java/util/LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1281: pop
    1282: goto          1207
    1285: aload         11
    1287: checkcast     #133                // class java/util/Map
    1290: invokeinterface #334,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;
    1295: checkcast     #62                 // class java/lang/Iterable
    1298: invokestatic  #337                // Method kotlin/collections/CollectionsKt.first:(Ljava/lang/Iterable;)Ljava/lang/Object;
    1301: checkcast     #283                // class java/util/SortedSet
    1304: aload         6
    1306: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1311: checkcast     #75                 // class java/util/Collection
    1314: invokeinterface #341,  2          // InterfaceMethod java/util/SortedSet.containsAll:(Ljava/util/Collection;)Z
    1319: ifeq          1343
    1322: aload_1
    1323: aload         6
    1325: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1330: iconst_5
    1331: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1334: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1339: pop
    1340: goto          1361
    1343: aload_1
    1344: aload         6
    1346: invokeinterface #168,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
    1351: iconst_2
    1352: invokestatic  #143                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1355: invokeinterface #152,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1360: pop
    1361: nop
    1362: nop
    1363: goto          979
    1366: nop
    1367: aload_1
    1368: areturn
}